Added NextCloud, Fixed Authelia, Updated rtorrent config
This commit is contained in:
parent
61832a7c32
commit
e99d860ac4
15 changed files with 2261 additions and 22 deletions
3
pillars/roles/aurpkgs/cloud.sls
Normal file
3
pillars/roles/aurpkgs/cloud.sls
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
aur:
|
||||||
|
pkgs:
|
||||||
|
onlyoffice-documentserver: []
|
9
pillars/roles/database/nextcloud.sls
Normal file
9
pillars/roles/database/nextcloud.sls
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
database:
|
||||||
|
users:
|
||||||
|
nextcloud:
|
||||||
|
host: cloud.actcur.com
|
||||||
|
databases:
|
||||||
|
nextcloud:
|
||||||
|
nextcloud:
|
||||||
|
host: cloud.actcur.com
|
||||||
|
grant: all privileges
|
7
pillars/roles/mount/nextcloud.sls
Normal file
7
pillars/roles/mount/nextcloud.sls
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
mount:
|
||||||
|
sshfs:
|
||||||
|
/mnt/nextcloud:
|
||||||
|
name: nextcloud
|
||||||
|
host: host.actcur.com
|
||||||
|
directory: /mnt/butter/nextcloud
|
||||||
|
user: mount
|
18
pillars/roles/nginx/nextcloud.sls
Normal file
18
pillars/roles/nginx/nextcloud.sls
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
nginx:
|
||||||
|
cloud:
|
||||||
|
auth: none
|
||||||
|
https:
|
||||||
|
port: 8080
|
||||||
|
prot: http
|
||||||
|
office:
|
||||||
|
auth: none
|
||||||
|
https:
|
||||||
|
port: 8000
|
||||||
|
prot: http
|
||||||
|
|
||||||
|
portal:
|
||||||
|
Misc:
|
||||||
|
cloud:
|
||||||
|
name: NextCloud
|
||||||
|
summary: NextCloud Server
|
||||||
|
public: true
|
1
pillars/servers/env/server/cloud.sls
vendored
Normal file
1
pillars/servers/env/server/cloud.sls
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
env: prod
|
8
pillars/servers/roles/server/cloud.sls
Normal file
8
pillars/servers/roles/server/cloud.sls
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
grains:
|
||||||
|
roles:
|
||||||
|
- server
|
||||||
|
- ssh
|
||||||
|
- nrpe
|
||||||
|
- saltminion
|
||||||
|
- nextcloud
|
||||||
|
- nginx-proxy
|
|
@ -46,6 +46,22 @@ ldap:
|
||||||
user: uid=authelia_admin,cn=users,cn=accounts,dc=actcur,dc=com
|
user: uid=authelia_admin,cn=users,cn=accounts,dc=actcur,dc=com
|
||||||
password: "{%- include 'secure/passwords/authelia_admin_password.txt' -%}"
|
password: "{%- include 'secure/passwords/authelia_admin_password.txt' -%}"
|
||||||
|
|
||||||
|
# Authentication methods
|
||||||
|
#
|
||||||
|
# Authentication methods can be defined per subdomain.
|
||||||
|
# There are currently two available methods: "single_factor" and "two_factor"
|
||||||
|
#
|
||||||
|
# Note: by default a domain uses "two_factor" method.
|
||||||
|
#
|
||||||
|
# Note: 'per_subdomain_methods' is a dictionary where keys must be subdomains and
|
||||||
|
# values must be one of the two possible methods.
|
||||||
|
#
|
||||||
|
# Note: 'per_subdomain_methods' is optional.
|
||||||
|
#
|
||||||
|
# Note: authentication_methods is optional. If it is not set all sub-domains
|
||||||
|
# are protected by two factors.
|
||||||
|
authentication_methods:
|
||||||
|
default_method: two_factor
|
||||||
|
|
||||||
# Access Control
|
# Access Control
|
||||||
#
|
#
|
||||||
|
@ -104,8 +120,14 @@ access_control:
|
||||||
policy: allow
|
policy: allow
|
||||||
- domain: 'radarr.actcur.com'
|
- domain: 'radarr.actcur.com'
|
||||||
policy: allow
|
policy: allow
|
||||||
- domain: 'deluge.actcur.com'
|
- domain: 'rtorrent.actcur.com'
|
||||||
policy: allow
|
policy: allow
|
||||||
|
- domain: 'jackett.actcur.com'
|
||||||
|
policy: allow
|
||||||
|
users:
|
||||||
|
none:
|
||||||
|
- domain: 'none'
|
||||||
|
policy: deny
|
||||||
|
|
||||||
# Configuration of session cookies
|
# Configuration of session cookies
|
||||||
#
|
#
|
||||||
|
@ -152,7 +174,8 @@ storage:
|
||||||
|
|
||||||
# Settings to connect to mongo server
|
# Settings to connect to mongo server
|
||||||
mongo:
|
mongo:
|
||||||
url: mongodb://127.0.0.1/authelia
|
url: mongodb://127.0.0.1/
|
||||||
|
database: authelia
|
||||||
|
|
||||||
# Configuration of the notification system.
|
# Configuration of the notification system.
|
||||||
#
|
#
|
||||||
|
|
|
@ -1,3 +1,13 @@
|
||||||
|
authelia_build_pkgs:
|
||||||
|
pkg.installed:
|
||||||
|
- pkgs:
|
||||||
|
- make
|
||||||
|
- gcc
|
||||||
|
|
||||||
|
authelia_nodejs:
|
||||||
|
pkg.installed:
|
||||||
|
- name: nodejs-lts-carbon
|
||||||
|
|
||||||
authelia_npm:
|
authelia_npm:
|
||||||
pkg.installed:
|
pkg.installed:
|
||||||
- name: npm
|
- name: npm
|
||||||
|
|
68
states/roles/maintain/nextcloud/init.sls
Normal file
68
states/roles/maintain/nextcloud/init.sls
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
nextcloud-pkgs:
|
||||||
|
pkg.installed:
|
||||||
|
- pkgs:
|
||||||
|
- nextcloud
|
||||||
|
- php-gd
|
||||||
|
- php-intl
|
||||||
|
- nginx
|
||||||
|
- collabora-online-server-nodocker
|
||||||
|
- redis
|
||||||
|
- rabbitmq
|
||||||
|
- postgresql
|
||||||
|
|
||||||
|
/etc/pacman.d/hooks/nextcloud.hook:
|
||||||
|
file.managed:
|
||||||
|
- source: salt://roles/maintain/nextcloud/nextcloud.hook
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- mode: 644
|
||||||
|
- makedirs: true
|
||||||
|
|
||||||
|
/etc/php/php.ini:
|
||||||
|
file.managed:
|
||||||
|
- source: salt://roles/maintain/nextcloud/php.ini
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- mode: 644
|
||||||
|
|
||||||
|
rtorrent-php-fpm:
|
||||||
|
pkg.installed:
|
||||||
|
- name: php-fpm
|
||||||
|
service.running:
|
||||||
|
- name: php-fpm
|
||||||
|
- enable: true
|
||||||
|
- watch:
|
||||||
|
- file: /etc/php/php.ini
|
||||||
|
|
||||||
|
/etc/nginx/conf.d/nextcloud.conf:
|
||||||
|
file.managed:
|
||||||
|
- source: salt://roles/maintain/nextcloud/nginx-nextcloud.conf
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- mode: 644
|
||||||
|
|
||||||
|
/etc/nginx/conf.d/collabora.conf:
|
||||||
|
file.managed:
|
||||||
|
- source: salt://roles/maintain/nextcloud/nginx-collabora.conf
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- mode: 644
|
||||||
|
|
||||||
|
mount:
|
||||||
|
group.present:
|
||||||
|
- gid: 503
|
||||||
|
- addusers:
|
||||||
|
- http
|
||||||
|
|
||||||
|
nginx-service:
|
||||||
|
service.running:
|
||||||
|
- name: nginx
|
||||||
|
- watch:
|
||||||
|
- file: /etc/nginx/conf.d/nextcloud.conf
|
||||||
|
|
||||||
|
/usr/share/webapps/nextcloud/apps:
|
||||||
|
file.directory:
|
||||||
|
- user: http
|
||||||
|
- group: http
|
||||||
|
- dir_mode: 750
|
||||||
|
|
11
states/roles/maintain/nextcloud/nextcloud.hook
Normal file
11
states/roles/maintain/nextcloud/nextcloud.hook
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[Trigger]
|
||||||
|
Operation = Install
|
||||||
|
Operation = Upgrade
|
||||||
|
Type = Package
|
||||||
|
Target = nextcloud
|
||||||
|
Target = nextcloud-app-*
|
||||||
|
|
||||||
|
[Action]
|
||||||
|
Description = Update Nextcloud installation
|
||||||
|
When = PostTransaction
|
||||||
|
Exec = /usr/bin/runuser -u http -- /usr/bin/php /usr/share/webapps/nextcloud/occ upgrade
|
45
states/roles/maintain/nextcloud/nginx-collabora.conf
Normal file
45
states/roles/maintain/nextcloud/nginx-collabora.conf
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
upstream office.actcur.com {
|
||||||
|
server 127.0.0.1:9980;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 8000;
|
||||||
|
server_name office.actcur.com;
|
||||||
|
|
||||||
|
# static files
|
||||||
|
location ^~ /loleaflet {
|
||||||
|
proxy_pass http://127.0.0.1:9980;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
}
|
||||||
|
|
||||||
|
# WOPI discovery URL
|
||||||
|
location ^~ /hosting/discovery {
|
||||||
|
proxy_pass http://127.0.0.1:9980;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Main websocket
|
||||||
|
location ~ /lool/(.*)/ws$ {
|
||||||
|
proxy_pass http://127.0.0.1:9980;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "Upgrade";
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_read_timeout 36000s;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Admin Console websocket
|
||||||
|
location ^~ /lool/adminws {
|
||||||
|
proxy_buffering off;
|
||||||
|
proxy_pass http://127.0.0.1:9980;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "Upgrade";
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_read_timeout 36000s;
|
||||||
|
}
|
||||||
|
|
||||||
|
# download, presentation and image upload
|
||||||
|
location ~ /lool {
|
||||||
|
proxy_pass http://127.0.0.1:9980;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
}
|
||||||
|
}
|
116
states/roles/maintain/nextcloud/nginx-nextcloud.conf
Normal file
116
states/roles/maintain/nextcloud/nginx-nextcloud.conf
Normal file
|
@ -0,0 +1,116 @@
|
||||||
|
upstream php-handler {
|
||||||
|
server unix:/run/php-fpm/php-fpm.sock;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 8080;
|
||||||
|
server_name cloud.actcur.com;
|
||||||
|
|
||||||
|
# Add headers to serve security related headers
|
||||||
|
# Before enabling Strict-Transport-Security headers please read into this
|
||||||
|
# topic first.
|
||||||
|
# add_header Strict-Transport-Security "max-age=15768000;
|
||||||
|
# includeSubDomains; preload;";
|
||||||
|
add_header X-Content-Type-Options nosniff;
|
||||||
|
add_header X-Frame-Options "SAMEORIGIN";
|
||||||
|
add_header X-XSS-Protection "1; mode=block";
|
||||||
|
add_header X-Robots-Tag none;
|
||||||
|
add_header X-Download-Options noopen;
|
||||||
|
add_header X-Permitted-Cross-Domain-Policies none;
|
||||||
|
|
||||||
|
# Path to the root of your installation
|
||||||
|
root /usr/share/webapps/nextcloud/;
|
||||||
|
|
||||||
|
location = /robots.txt {
|
||||||
|
allow all;
|
||||||
|
log_not_found off;
|
||||||
|
access_log off;
|
||||||
|
}
|
||||||
|
|
||||||
|
# The following 2 rules are only needed for the user_webfinger app.
|
||||||
|
# Uncomment it if you're planning to use this app.
|
||||||
|
#rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
|
||||||
|
#rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json
|
||||||
|
# last;
|
||||||
|
|
||||||
|
location = /.well-known/carddav {
|
||||||
|
return 301 $scheme://$host/remote.php/dav;
|
||||||
|
}
|
||||||
|
location = /.well-known/caldav {
|
||||||
|
return 301 $scheme://$host/remote.php/dav;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ /.well-known/acme-challenge {
|
||||||
|
allow all;
|
||||||
|
}
|
||||||
|
|
||||||
|
# set max upload size
|
||||||
|
client_max_body_size 512M;
|
||||||
|
fastcgi_buffers 64 4K;
|
||||||
|
|
||||||
|
# Disable gzip to avoid the removal of the ETag header
|
||||||
|
gzip off;
|
||||||
|
|
||||||
|
# Uncomment if your server is build with the ngx_pagespeed module
|
||||||
|
# This module is currently not supported.
|
||||||
|
#pagespeed off;
|
||||||
|
|
||||||
|
error_page 403 /core/templates/403.php;
|
||||||
|
error_page 404 /core/templates/404.php;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
rewrite ^ /index.php$uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+)\.php(?:$|/) {
|
||||||
|
fastcgi_split_path_info ^(.+\.php)(/.*)$;
|
||||||
|
include fastcgi_params;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
fastcgi_param PATH_INFO $fastcgi_path_info;
|
||||||
|
#Avoid sending the security headers twice
|
||||||
|
fastcgi_param modHeadersAvailable true;
|
||||||
|
fastcgi_param front_controller_active true;
|
||||||
|
fastcgi_pass php-handler;
|
||||||
|
fastcgi_intercept_errors on;
|
||||||
|
fastcgi_request_buffering off;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ ^/(?:updater|ocs-provider)(?:$|/) {
|
||||||
|
try_files $uri/ =404;
|
||||||
|
index index.php;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Adding the cache control header for js and css files
|
||||||
|
# Make sure it is BELOW the PHP block
|
||||||
|
location ~* \.(?:css|js)$ {
|
||||||
|
try_files $uri /index.php$uri$is_args$args;
|
||||||
|
add_header Cache-Control "public, max-age=7200";
|
||||||
|
# Add headers to serve security related headers (It is intended to
|
||||||
|
# have those duplicated to the ones above)
|
||||||
|
# Before enabling Strict-Transport-Security headers please read into
|
||||||
|
# this topic first.
|
||||||
|
# add_header Strict-Transport-Security "max-age=15768000;
|
||||||
|
# includeSubDomains; preload;";
|
||||||
|
add_header X-Content-Type-Options nosniff;
|
||||||
|
add_header X-Frame-Options "SAMEORIGIN";
|
||||||
|
add_header X-XSS-Protection "1; mode=block";
|
||||||
|
add_header X-Robots-Tag none;
|
||||||
|
add_header X-Download-Options noopen;
|
||||||
|
add_header X-Permitted-Cross-Domain-Policies none;
|
||||||
|
# Optional: Don't log access to assets
|
||||||
|
access_log off;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
|
||||||
|
try_files $uri /index.php$uri$is_args$args;
|
||||||
|
# Optional: Don't log access to other assets
|
||||||
|
access_log off;
|
||||||
|
}
|
||||||
|
}
|
1920
states/roles/maintain/nextcloud/php.ini
Normal file
1920
states/roles/maintain/nextcloud/php.ini
Normal file
File diff suppressed because it is too large
Load diff
|
@ -89,7 +89,7 @@ nginx:
|
||||||
{%- else %}
|
{%- else %}
|
||||||
/etc/nginx/conf.d/default.conf:
|
/etc/nginx/conf.d/default.conf:
|
||||||
file.managed:
|
file.managed:
|
||||||
- mkdirs: true
|
- makedirs: true
|
||||||
- source: salt://roles/maintain/nginx-proxy/default.conf
|
- source: salt://roles/maintain/nginx-proxy/default.conf
|
||||||
- user: root
|
- user: root
|
||||||
- group: root
|
- group: root
|
||||||
|
|
|
@ -1,32 +1,32 @@
|
||||||
# Maximum and minimum number of peers to connect to per torrent.
|
# Maximum and minimum number of peers to connect to per torrent.
|
||||||
min_peers = 40
|
throttle.min_peers.normal.set = 40
|
||||||
max_peers = 100
|
throttle.max_peers.normal.set = 100
|
||||||
|
|
||||||
# Same as above but for seeding completed torrents (-1 = same as downloading)
|
# Same as above but for seeding completed torrents (-1 = same as downloading)
|
||||||
min_peers_seed = 25
|
throttle.min_peers.seed.set = 25
|
||||||
max_peers_seed = 60
|
throttle.max_peers.seed.set = 60
|
||||||
|
|
||||||
# Maximum number of simultaneous uploads per torrent.
|
# Maximum number of simultaneous uploads per torrent.
|
||||||
max_uploads = 30
|
throttle.max_uploads.set = 30
|
||||||
|
|
||||||
# Global upload and download rate in KiB. "0" for unlimited.
|
# Global upload and download rate in KiB. "0" for unlimited.
|
||||||
download_rate = 1024
|
throttle.global_down.max_rate.set_kb = 1024
|
||||||
upload_rate = 50
|
throttle.global_up.max_rate.set_kb = 50
|
||||||
|
|
||||||
# Default directory to save the downloaded torrents.
|
# Default directory to save the downloaded torrents.
|
||||||
directory = /mnt/video/rtorrent/downloads
|
directory.default.set = /mnt/video/rtorrent/downloads
|
||||||
|
|
||||||
# Default session directory. Make sure you don't run multiple instance
|
# Default session directory. Make sure you don't run multiple instance
|
||||||
# of rtorrent using the same session directory. Perhaps using a
|
# of rtorrent using the same session directory. Perhaps using a
|
||||||
# relative path?
|
# relative path?
|
||||||
session = /mnt/video/rtorrent/.session
|
session.path.set = /mnt/video/rtorrent/.session
|
||||||
|
|
||||||
# Watch a directory for new torrents, and stop those that have been
|
# Watch a directory for new torrents, and stop those that have been
|
||||||
# deleted.
|
# deleted.
|
||||||
schedule = watch_directory,5,5,load_start=/home/downloads/~watch/*.torrent
|
schedule2 = watch_directory,5,5,load.start=/home/downloads/~watch/*.torrent
|
||||||
|
|
||||||
# Close torrents when diskspace is low.
|
# Close torrents when diskspace is low.
|
||||||
schedule = low_diskspace,5,60,close_low_diskspace=10240M
|
schedule2 = low_diskspace,5,60,close_low_diskspace=10240M
|
||||||
|
|
||||||
# The ip address reported to the tracker.
|
# The ip address reported to the tracker.
|
||||||
#ip = 127.0.0.1
|
#ip = 127.0.0.1
|
||||||
|
@ -38,17 +38,17 @@ schedule = low_diskspace,5,60,close_low_diskspace=10240M
|
||||||
#bind = rakshasa.no
|
#bind = rakshasa.no
|
||||||
|
|
||||||
# Port range to use for listening.
|
# Port range to use for listening.
|
||||||
port_range = 55950-56000
|
network.port_range.set = 55950-56000
|
||||||
|
|
||||||
# Start opening ports at a random position within the port range.
|
# Start opening ports at a random position within the port range.
|
||||||
port_random = yes
|
network.port_random.set = yes
|
||||||
|
|
||||||
# Check hash for finished torrents. Might be usefull until the bug is
|
# Check hash for finished torrents. Might be usefull until the bug is
|
||||||
# fixed that causes lack of diskspace not to be properly reported.
|
# fixed that causes lack of diskspace not to be properly reported.
|
||||||
check_hash = yes
|
pieces.hash.on_completion.set = yes
|
||||||
|
|
||||||
# Set whether the client should try to connect to UDP trackers.
|
# Set whether the client should try to connect to UDP trackers.
|
||||||
use_udp_trackers = yes
|
trackers.use_udp.set = yes
|
||||||
|
|
||||||
# Alternative calls to bind and ip that should handle dynamic ip's.
|
# Alternative calls to bind and ip that should handle dynamic ip's.
|
||||||
#schedule = ip_tick,0,1800,ip=rakshasa
|
#schedule = ip_tick,0,1800,ip=rakshasa
|
||||||
|
@ -61,14 +61,14 @@ use_udp_trackers = yes
|
||||||
# outgoing connections but retries with encryption if they fail, preferring
|
# outgoing connections but retries with encryption if they fail, preferring
|
||||||
# plaintext to RC4 encryption after the encrypted handshake
|
# plaintext to RC4 encryption after the encrypted handshake
|
||||||
#
|
#
|
||||||
encryption = allow_incoming,enable_retry,prefer_plaintext
|
protocol.encryption.set = allow_incoming,enable_retry,prefer_plaintext
|
||||||
|
|
||||||
# Enable DHT support for trackerless torrents or when all trackers are down.
|
# Enable DHT support for trackerless torrents or when all trackers are down.
|
||||||
# May be set to "disable" (completely disable DHT), "off" (do not start DHT),
|
# May be set to "disable" (completely disable DHT), "off" (do not start DHT),
|
||||||
# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).
|
# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).
|
||||||
# The default is "off". For DHT to work, a session directory must be defined.
|
# The default is "off". For DHT to work, a session directory must be defined.
|
||||||
#
|
#
|
||||||
dht = on
|
dht.mode.set = on
|
||||||
|
|
||||||
# UDP port to use for DHT.
|
# UDP port to use for DHT.
|
||||||
#
|
#
|
||||||
|
@ -76,6 +76,6 @@ dht = on
|
||||||
|
|
||||||
# Enable peer exchange (for torrents not marked private)
|
# Enable peer exchange (for torrents not marked private)
|
||||||
#
|
#
|
||||||
peer_exchange = yes
|
protocol.pex.set = yes
|
||||||
|
|
||||||
scgi_port = 127.0.0.1:5050
|
network.scgi.open_port = 127.0.0.1:5050
|
Loading…
Add table
Reference in a new issue