commit
ed662df834
@ -0,0 +1,24 @@ |
|||||||
|
# Global Settings |
||||||
|
LOCAL_STACK_DIR=/srv/docker/volumes/seafile |
||||||
|
|
||||||
|
# Networks |
||||||
|
NETWORK= |
||||||
|
|
||||||
|
# Seafile |
||||||
|
SF_IMG= |
||||||
|
SF_TAG= |
||||||
|
SF_CONTAINER_NAME= |
||||||
|
SF_RESTART= |
||||||
|
|
||||||
|
# Database |
||||||
|
DB_IMG= |
||||||
|
DB_TAG= |
||||||
|
DB_CONTAINER_NAME= |
||||||
|
DB_RESTART= |
||||||
|
DB_ROOT_PASSWD= |
||||||
|
|
||||||
|
# Memcached |
||||||
|
MC_IMG= |
||||||
|
MC_TAG= |
||||||
|
MC_CONTAINER_NAME= |
||||||
|
MC_RESTART= |
@ -0,0 +1 @@ |
|||||||
|
*.env |
@ -0,0 +1,50 @@ |
|||||||
|
version: '3' |
||||||
|
|
||||||
|
services: |
||||||
|
db: |
||||||
|
image: ${DB_IMG:-mariadb}:${DB_TAG:-latest} |
||||||
|
container_name: ${DB_CONTAINER_NAME:-seafile-db} |
||||||
|
restart: ${DB_RESTART:-unless-stopped} |
||||||
|
environment: |
||||||
|
- MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWD:-changemeplease} |
||||||
|
- MYSQL_LOG_CONSOLE=true |
||||||
|
volumes: |
||||||
|
- ${LOCAL_STACK_DIR}/db:/var/lib/mysql |
||||||
|
networks: |
||||||
|
- seafile-net |
||||||
|
|
||||||
|
memcached: |
||||||
|
image: ${MC_IMG:-memcached}:${MC_TAG:-alpine} |
||||||
|
container_name: ${MC_CONTAINER_NAME:-seafile-memcached} |
||||||
|
restart: ${MC_RESTART:-unless-stopped} |
||||||
|
entrypoint: memcached -m 256 |
||||||
|
networks: |
||||||
|
- seafile-net |
||||||
|
|
||||||
|
seafile: |
||||||
|
image: ${SF_IMG:-seafileltd/seafile-mc}:${SF_TAG:-latest} |
||||||
|
container_name: ${SF_CONTAINER_NAME:-seafile} |
||||||
|
restart: ${SF_RESTART:-unless-stopped} |
||||||
|
expose: |
||||||
|
- "80" |
||||||
|
volumes: |
||||||
|
- ${LOCAL_STACK_DIR}/seafile/data:/shared |
||||||
|
- ./seafile.nginx.conf.template:/templates/seafile.nginx.conf.template:ro |
||||||
|
environment: |
||||||
|
- DB_HOST=db |
||||||
|
- DB_ROOT_PASSWD=${DB_ROOT_PASSWD:-changemeplease} |
||||||
|
env_file: |
||||||
|
- seafile.env |
||||||
|
depends_on: |
||||||
|
- db |
||||||
|
- memcached |
||||||
|
networks: |
||||||
|
- default |
||||||
|
- seafile-net |
||||||
|
|
||||||
|
networks: |
||||||
|
default: |
||||||
|
external: |
||||||
|
name: ${NETWORK:-webservices} |
||||||
|
seafile-net: |
||||||
|
internal: true |
@ -0,0 +1,11 @@ |
|||||||
|
TIME_ZONE=Etc/UTC |
||||||
|
SEAFILE_ADMIN_EMAIL=me@example.com |
||||||
|
SEAFILE_ADMIN_PASSWORD=asecret |
||||||
|
SEAFILE_SERVER_LETSENCRYPT=false |
||||||
|
#SEAFILE_SERVER_HOSTNAME=docs.seafile.com |
||||||
|
|
||||||
|
# Reverse-proxy and certbot |
||||||
|
VIRTUAL_HOST=domain.tld |
||||||
|
VIRTUAL_PORT=80 |
||||||
|
LETSENCRYPT_HOST=domain.tld |
||||||
|
LETSENCRYPT_EMAIL=user@domain.tld |
@ -0,0 +1,60 @@ |
|||||||
|
# -*- mode: nginx -*- |
||||||
|
# Auto generated at {{ current_timestr }} |
||||||
|
server { |
||||||
|
listen 80; |
||||||
|
server_name {{ domain }}; |
||||||
|
|
||||||
|
client_max_body_size 10m; |
||||||
|
|
||||||
|
location / { |
||||||
|
proxy_pass http://127.0.0.1:8000/; |
||||||
|
proxy_read_timeout 310s; |
||||||
|
proxy_set_header Host $host; |
||||||
|
proxy_set_header Forwarded "for=$proxy_add_x_forwarded_for;proto=$http_x_forwarded_proto"; |
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
||||||
|
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto; |
||||||
|
proxy_set_header X-Real-IP $proxy_add_x_forwarded_for; |
||||||
|
proxy_set_header Connection ""; |
||||||
|
proxy_http_version 1.1; |
||||||
|
|
||||||
|
client_max_body_size 0; |
||||||
|
access_log /var/log/nginx/seahub.access.log seafileformat; |
||||||
|
error_log /var/log/nginx/seahub.error.log; |
||||||
|
} |
||||||
|
|
||||||
|
location /seafhttp { |
||||||
|
rewrite ^/seafhttp(.*)$ $1 break; |
||||||
|
proxy_pass http://127.0.0.1:8082; |
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
||||||
|
client_max_body_size 0; |
||||||
|
proxy_connect_timeout 36000s; |
||||||
|
proxy_read_timeout 36000s; |
||||||
|
proxy_request_buffering off; |
||||||
|
access_log /var/log/nginx/seafhttp.access.log seafileformat; |
||||||
|
error_log /var/log/nginx/seafhttp.error.log; |
||||||
|
} |
||||||
|
|
||||||
|
location /seafdav { |
||||||
|
proxy_pass http://127.0.0.1:8080; |
||||||
|
proxy_set_header Host $host; |
||||||
|
proxy_set_header X-Real-IP $proxy_add_x_forwarded_for; |
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
||||||
|
proxy_set_header X-Forwarded-Host $server_name; |
||||||
|
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto; |
||||||
|
proxy_read_timeout 1200s; |
||||||
|
client_max_body_size 0; |
||||||
|
|
||||||
|
access_log /var/log/nginx/seafdav.access.log seafileformat; |
||||||
|
error_log /var/log/nginx/seafdav.error.log; |
||||||
|
} |
||||||
|
|
||||||
|
location /media { |
||||||
|
root /opt/seafile/seafile-server-latest/seahub; |
||||||
|
} |
||||||
|
|
||||||
|
# For letsencrypt |
||||||
|
location /.well-known/acme-challenge/ { |
||||||
|
alias /var/www/challenges/; |
||||||
|
try_files $uri =404; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue