| @@ -64,8 +64,9 @@ deploy.config: | |||
| - |- | |||
| if [[ "${ES_ENABLED}" != "false" ]] | |||
| then | |||
| bundle exec rake chewy:deploy | |||
| bin/tootctl search deploy | |||
| fi | |||
| - bin/tootctl cache clear | |||
| web.web: | |||
| @@ -120,77 +121,6 @@ worker.sidekiq: | |||
| - public/system | |||
| worker.cron_only: | |||
| start: sleep 365d | |||
| writable_dirs: | |||
| - tmp | |||
| log_watch: | |||
| rake: 'log/production.log' | |||
| network_dirs: | |||
| data.storage: | |||
| - public/system | |||
| cron: | |||
| # 20:00 (8 pm), server time: send out the daily digest emails to everyone | |||
| # who opted to receive one | |||
| - id: send_digest_emails | |||
| schedule: '00 20 * * *' | |||
| command: 'bundle exec rake mastodon:emails:digest' | |||
| # 00:10 (ten past midnight), server time: remove local copies of remote | |||
| # users' media once they are older than a certain age (use NUM_DAYS evar to | |||
| # change this from the default of 7 days) | |||
| - id: clear_remote_media | |||
| schedule: '10 00 * * *' | |||
| command: 'bundle exec rake mastodon:media:remove_remote' | |||
| # 00:20 (twenty past midnight), server time: remove subscriptions to remote | |||
| # users that nobody follows locally (anymore) | |||
| - id: clear_unfollowed_subs | |||
| schedule: '20 00 * * *' | |||
| command: 'bundle exec rake mastodon:push:clear' | |||
| # 00:30 (half past midnight), server time: update local copies of remote | |||
| # users' avatars to match whatever they currently have set on their profile | |||
| - id: update_remote_avatars | |||
| schedule: '30 00 * * *' | |||
| command: 'bundle exec rake mastodon:media:redownload_avatars' | |||
| ############################################################################ | |||
| # This task is one you might want to enable, or might not. It keeps disk | |||
| # usage low, but makes "shadow bans" (scenarios where the user is silenced, | |||
| # but not intended to be made aware that the silencing has occurred) much | |||
| # more difficult to put in place, as users would then notice their media is | |||
| # vanishing on a regular basis. Enable it if you aren't worried about users | |||
| # knowing they've been silenced (on the instance level), and want to save | |||
| # disk space. Leave it disabled otherwise. | |||
| ############################################################################ | |||
| # # 00:00 (midnight), server time: remove media posted by silenced users | |||
| # - id: clear_silenced_media | |||
| # schedule: '00 00 * * *' | |||
| # command: 'bundle exec rake mastodon:media:remove_silenced' | |||
| ############################################################################ | |||
| # The following two tasks can be uncommented to automatically open and close | |||
| # registrations on a schedule. The format of 'schedule' is a standard cron | |||
| # time expression: minute hour day month day-of-week; search for "cron | |||
| # time expressions" for more info on how to set these up. The examples here | |||
| # open registration only from 8 am to 4 pm, server time. | |||
| ############################################################################ | |||
| # # 08:00 (8 am), server time: open registrations so new users can join | |||
| # - id: open_registrations | |||
| # schedule: '00 08 * * *' | |||
| # command: 'bundle exec rake mastodon:settings:open_registrations' | |||
| # | |||
| # # 16:00 (4 pm), server time: close registrations so new users *can't* join | |||
| # - id: close_registrations | |||
| # schedule: '00 16 * * *' | |||
| # command: 'bundle exec rake mastodon:settings:close_registrations' | |||
| data.db: | |||
| image: nanobox/postgresql:9.6 | |||
| @@ -10,10 +10,13 @@ http { | |||
| sendfile on; | |||
| gzip on; | |||
| gzip_http_version 1.0; | |||
| gzip_disable "MSIE [1-6]\."; | |||
| gzip_vary on; | |||
| gzip_proxied any; | |||
| gzip_comp_level 6; | |||
| gzip_buffers 16 8k; | |||
| gzip_min_length 500; | |||
| gzip_disable "MSIE [1-6]\."; | |||
| gzip_http_version 1.1; | |||
| gzip_types text/plain text/xml text/javascript text/css text/comma-separated-values application/xml+rss application/xml application/x-javascript application/json application/javascript application/atom+xml; | |||
| # Proxy upstream to the puma process | |||
| @@ -36,9 +39,12 @@ http { | |||
| # Listen on port 8080 | |||
| listen 8080; | |||
| keepalive_timeout 70; | |||
| client_max_body_size 80M; | |||
| root /app/public; | |||
| client_max_body_size 80M; | |||
| add_header Strict-Transport-Security "max-age=31536000"; | |||
| location / { | |||
| try_files $uri @rails; | |||
| @@ -47,6 +53,10 @@ http { | |||
| # Proxy connections to rails | |||
| location @rails { | |||
| proxy_set_header Host $host; | |||
| proxy_set_header X-Real-IP $remote_addr; | |||
| proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |||
| proxy_set_header X-Forwarded-Proto https; | |||
| proxy_set_header Proxy ""; | |||
| proxy_pass_header Server; | |||
| proxy_pass http://rails; | |||
| @@ -62,6 +72,10 @@ http { | |||
| # Proxy connections to node | |||
| location /api/v1/streaming { | |||
| proxy_set_header Host $host; | |||
| proxy_set_header X-Real-IP $remote_addr; | |||
| proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |||
| proxy_set_header X-Forwarded-Proto https; | |||
| proxy_set_header Proxy ""; | |||
| proxy_pass http://node; | |||
| proxy_buffering off; | |||
| @@ -10,10 +10,13 @@ http { | |||
| sendfile on; | |||
| gzip on; | |||
| gzip_http_version 1.1; | |||
| gzip_disable "MSIE [1-6]\."; | |||
| gzip_vary on; | |||
| gzip_proxied any; | |||
| gzip_comp_level 6; | |||
| gzip_buffers 16 8k; | |||
| gzip_min_length 500; | |||
| gzip_disable "MSIE [1-6]\."; | |||
| gzip_http_version 1.1; | |||
| gzip_types text/plain text/xml text/javascript text/css text/comma-separated-values application/xml+rss application/xml application/x-javascript application/json application/javascript application/atom+xml; | |||
| # Proxy upstream to the node process | |||
| @@ -31,11 +34,13 @@ http { | |||
| # Listen on port 8080 | |||
| listen 8080; | |||
| add_header Strict-Transport-Security "max-age=31536000"; | |||
| # add_header Content-Security-Policy "style-src 'self' 'unsafe-inline'; script-src 'self'; object-src 'self'; img-src data: https:; media-src data: https:; connect-src 'self' wss://<%= ENV["LOCAL_DOMAIN"] %>; upgrade-insecure-requests"; | |||
| keepalive_timeout 70; | |||
| client_max_body_size 80M; | |||
| root /app/public; | |||
| add_header Strict-Transport-Security "max-age=31536000"; | |||
| location / { | |||
| try_files $uri @node; | |||
| } | |||
| @@ -43,6 +48,10 @@ http { | |||
| # Proxy connections to node | |||
| location @node { | |||
| proxy_set_header Host $host; | |||
| proxy_set_header X-Real-IP $remote_addr; | |||
| proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |||
| proxy_set_header X-Forwarded-Proto https; | |||
| proxy_set_header Proxy ""; | |||
| proxy_pass http://node; | |||
| proxy_buffering off; | |||
| @@ -10,10 +10,13 @@ http { | |||
| sendfile on; | |||
| gzip on; | |||
| gzip_http_version 1.0; | |||
| gzip_disable "MSIE [1-6]\."; | |||
| gzip_vary on; | |||
| gzip_proxied any; | |||
| gzip_comp_level 6; | |||
| gzip_buffers 16 8k; | |||
| gzip_min_length 500; | |||
| gzip_disable "MSIE [1-6]\."; | |||
| gzip_http_version 1.1; | |||
| gzip_types text/plain text/xml text/javascript text/css text/comma-separated-values application/xml+rss application/xml application/x-javascript application/json application/javascript application/atom+xml; | |||
| # Proxy upstream to the puma process | |||
| @@ -31,12 +34,12 @@ http { | |||
| # Listen on port 8080 | |||
| listen 8080; | |||
| add_header Strict-Transport-Security "max-age=31536000"; | |||
| # add_header Content-Security-Policy "style-src 'self' 'unsafe-inline'; script-src 'self'; object-src 'self'; img-src data: https:; media-src data: https:; connect-src 'self' wss://<%= ENV["LOCAL_DOMAIN"] %>; upgrade-insecure-requests"; | |||
| keepalive_timeout 70; | |||
| client_max_body_size 80M; | |||
| root /app/public; | |||
| client_max_body_size 80M; | |||
| add_header Strict-Transport-Security "max-age=31536000"; | |||
| location / { | |||
| try_files $uri @rails; | |||
| @@ -44,17 +47,23 @@ http { | |||
| location /sw.js { | |||
| add_header Cache-Control "public, max-age=0"; | |||
| add_header Strict-Transport-Security "max-age=31536000"; | |||
| try_files $uri @rails; | |||
| } | |||
| location ~ ^/(emoji|packs|system/media_attachments/files|system/accounts/avatars) { | |||
| add_header Cache-Control "public, max-age=31536000, immutable"; | |||
| add_header Strict-Transport-Security "max-age=31536000"; | |||
| try_files $uri @rails; | |||
| } | |||
| # Proxy connections to rails | |||
| location @rails { | |||
| proxy_set_header Host $host; | |||
| proxy_set_header X-Real-IP $remote_addr; | |||
| proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |||
| proxy_set_header X-Forwarded-Proto https; | |||
| proxy_set_header Proxy ""; | |||
| proxy_pass_header Server; | |||
| proxy_pass http://rails; | |||
| @@ -66,7 +75,10 @@ http { | |||
| proxy_cache CACHE; | |||
| proxy_cache_valid 200 7d; | |||
| proxy_cache_valid 410 24h; | |||
| proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; | |||
| add_header Strict-Transport-Security "max-age=31536000"; | |||
| add_header X-Cached $upstream_cache_status; | |||
| tcp_nodelay on; | |||
| } | |||