simplify seafile docker compose
This commit is contained in:
33
seafile/.env
33
seafile/.env
@@ -1,33 +0,0 @@
|
||||
SEAFILE_IMAGE=seafileltd/seafile-mc:12.0-latest
|
||||
SEAFILE_DB_IMAGE=mariadb:10.11
|
||||
SEAFILE_MEMCACHED_IMAGE=memcached:1.6.29
|
||||
SEAFILE_CADDY_IMAGE=lucaslorentz/caddy-docker-proxy:2.9
|
||||
|
||||
SEAFILE_VOLUME=/opt/seafile/data
|
||||
SEAFILE_MYSQL_VOLUME=/opt/seafile/db
|
||||
SEAFILE_CADDY_VOLUME=/opt/seafile/caddy
|
||||
|
||||
SEAFILE_MYSQL_DB_HOST=db
|
||||
INIT_SEAFILE_MYSQL_ROOT_PASSWORD=ROOT_PASSWORD
|
||||
SEAFILE_MYSQL_DB_USER=seafile
|
||||
SEAFILE_MYSQL_DB_PASSWORD=PASSWORD
|
||||
|
||||
TIME_ZONE=Europe/Amsterdam
|
||||
|
||||
JWT_PRIVATE_KEY=8LzWzeuQ41z1i8fc1cr1L7Kw80VpTgmT
|
||||
|
||||
SEAFILE_SERVER_HOSTNAME=seafile.rik.veenboer.xyz
|
||||
SEAFILE_SERVER_PROTOCOL=https
|
||||
|
||||
INIT_SEAFILE_ADMIN_EMAIL=admin@rik.veenboer.xyz
|
||||
INIT_SEAFILE_ADMIN_PASSWORD=asecret
|
||||
|
||||
|
||||
SEADOC_IMAGE=seafileltd/sdoc-server:1.0-latest
|
||||
SEADOC_VOLUME=/opt/seadoc-data
|
||||
|
||||
ENABLE_SEADOC=false
|
||||
SEADOC_SERVER_URL=http://example.seafile.com/sdoc-server
|
||||
|
||||
NOTIFICATION_SERVER_IMAGE=seafileltd/notification-server:12.0-latest
|
||||
NOTIFICATION_SERVER_VOLUME=/opt/notification-data
|
||||
@@ -1,56 +0,0 @@
|
||||
services:
|
||||
db:
|
||||
image: ${SEAFILE_DB_IMAGE:-mariadb:10.11}
|
||||
container_name: seafile-mysql
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${INIT_SEAFILE_MYSQL_ROOT_PASSWORD:?Variable is not set or empty}
|
||||
- MYSQL_LOG_CONSOLE=true
|
||||
- MARIADB_AUTO_UPGRADE=1
|
||||
volumes:
|
||||
- "${SEAFILE_MYSQL_VOLUME:-/opt/seafile-mysql/db}:/var/lib/mysql"
|
||||
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"/usr/local/bin/healthcheck.sh",
|
||||
"--connect",
|
||||
"--mariadbupgrade",
|
||||
"--innodb_initialized",
|
||||
]
|
||||
interval: 20s
|
||||
start_period: 30s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
|
||||
seafile:
|
||||
image: ${SEAFILE_IMAGE:-seafileltd/seafile-mc:12.0-latest}
|
||||
container_name: seafile
|
||||
ports:
|
||||
- "8082:80"
|
||||
volumes:
|
||||
- ${SEAFILE_VOLUME:-/opt/seafile-data}:/shared
|
||||
- /media/sync/seafile:/shared/seafile/seafile-data
|
||||
environment:
|
||||
- DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db}
|
||||
- DB_PORT=${SEAFILE_MYSQL_DB_PORT:-3306}
|
||||
- DB_ROOT_PASSWD=${INIT_SEAFILE_MYSQL_ROOT_PASSWORD:-}
|
||||
- DB_PASSWORD=${SEAFILE_MYSQL_DB_PASSWORD:?Variable is not set or empty}
|
||||
- SEAFILE_MYSQL_DB_CCNET_DB_NAME=${SEAFILE_MYSQL_DB_CCNET_DB_NAME:-ccnet_db}
|
||||
- SEAFILE_MYSQL_DB_SEAFILE_DB_NAME=${SEAFILE_MYSQL_DB_SEAFILE_DB_NAME:-seafile_db}
|
||||
- SEAFILE_MYSQL_DB_SEAHUB_DB_NAME=${SEAFILE_MYSQL_DB_SEAHUB_DB_NAME:-seahub_db}
|
||||
- TIME_ZONE=${TIME_ZONE:-Etc/UTC}
|
||||
- INIT_SEAFILE_ADMIN_EMAIL=${INIT_SEAFILE_ADMIN_EMAIL:-me@example.com}
|
||||
- INIT_SEAFILE_ADMIN_PASSWORD=${INIT_SEAFILE_ADMIN_PASSWORD:-asecret}
|
||||
- SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}
|
||||
- SEAFILE_SERVER_PROTOCOL=${SEAFILE_SERVER_PROTOCOL:-http}
|
||||
- SITE_ROOT=${SITE_ROOT:-/}
|
||||
- NON_ROOT=${NON_ROOT:-false}
|
||||
- JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty}
|
||||
- ENABLE_SEADOC=${ENABLE_SEADOC:-false}
|
||||
- SEADOC_SERVER_URL=${SEADOC_SERVER_URL:-http://example.example.com/sdoc-server}
|
||||
labels:
|
||||
caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}
|
||||
caddy.reverse_proxy: "{{upstreams 80}}"
|
||||
depends_on:
|
||||
- db
|
||||
79
seafile/server/nginx/conf/seafile.nginx.conf
Normal file
79
seafile/server/nginx/conf/seafile.nginx.conf
Normal file
@@ -0,0 +1,79 @@
|
||||
# -*- mode: nginx -*-
|
||||
# Auto generated at 11/30/2024 22:39:05
|
||||
server {
|
||||
listen 80;
|
||||
server_name seafile.rik.veenboer.xyz;
|
||||
|
||||
client_max_body_size 10m;
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:8000/;
|
||||
proxy_read_timeout 310s;
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header Forwarded "for=$remote_addr;proto=$scheme";
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
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 /notification/ping {
|
||||
proxy_pass http://127.0.0.1:8083/ping;
|
||||
access_log /var/log/nginx/notification.access.log seafileformat;
|
||||
error_log /var/log/nginx/notification.error.log;
|
||||
}
|
||||
|
||||
location /notification {
|
||||
proxy_pass http://127.0.0.1:8083/;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
access_log /var/log/nginx/notification.access.log seafileformat;
|
||||
error_log /var/log/nginx/notification.error.log;
|
||||
}
|
||||
|
||||
location /seafdav {
|
||||
rewrite ^/seafdav$ /seafdav/ permanent;
|
||||
}
|
||||
|
||||
location /seafdav/ {
|
||||
proxy_pass http://127.0.0.1:8080/seafdav/;
|
||||
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-Host $server_name;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
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 /:dir_browser {
|
||||
# Logo of WebDAV
|
||||
proxy_pass http://127.0.0.1:8080/:dir_browser;
|
||||
}
|
||||
|
||||
location /media {
|
||||
root /opt/seafile/seafile-server-latest/seahub;
|
||||
}
|
||||
|
||||
}
|
||||
16
seafile/server/seafile/conf/gunicorn.conf.py
Normal file
16
seafile/server/seafile/conf/gunicorn.conf.py
Normal file
@@ -0,0 +1,16 @@
|
||||
import os
|
||||
|
||||
daemon = True
|
||||
workers = 5
|
||||
|
||||
# default localhost:8000
|
||||
bind = "127.0.0.1:8000"
|
||||
|
||||
# Pid
|
||||
pids_dir = '/opt/seafile/pids'
|
||||
pidfile = os.path.join(pids_dir, 'seahub.pid')
|
||||
|
||||
# for file upload, we need a longer timeout value (default is only 30s, too short)
|
||||
timeout = 1200
|
||||
|
||||
limit_request_line = 8190
|
||||
4
seafile/server/seafile/conf/seafdav.conf
Normal file
4
seafile/server/seafile/conf/seafdav.conf
Normal file
@@ -0,0 +1,4 @@
|
||||
[WEBDAV]
|
||||
enabled = false
|
||||
port = 8080
|
||||
share_name = /seafdav
|
||||
22
seafile/server/seafile/conf/seafevents.conf
Normal file
22
seafile/server/seafile/conf/seafevents.conf
Normal file
@@ -0,0 +1,22 @@
|
||||
[DATABASE]
|
||||
type = mysql
|
||||
host = seafile-mysql
|
||||
port = 3306
|
||||
username = seafile
|
||||
password = PASSWORD
|
||||
name = seahub_db
|
||||
|
||||
[SEAHUB EMAIL]
|
||||
enabled = false
|
||||
|
||||
## interval of sending Seahub email. Can be s(seconds), m(minutes), h(hours), d(days)
|
||||
interval = 30m
|
||||
|
||||
# Enable statistics
|
||||
[STATISTICS]
|
||||
enabled=false
|
||||
|
||||
# Enable file history
|
||||
[FILE HISTORY]
|
||||
enabled = true
|
||||
suffix = md,txt,doc,docx,xls,xlsx,ppt,pptx,sdoc,py
|
||||
11
seafile/server/seafile/conf/seafile.conf
Normal file
11
seafile/server/seafile/conf/seafile.conf
Normal file
@@ -0,0 +1,11 @@
|
||||
[fileserver]
|
||||
port = 8082
|
||||
|
||||
[database]
|
||||
type = mysql
|
||||
host = seafile-mysql
|
||||
port = 3306
|
||||
user = seafile
|
||||
password = PASSWORD
|
||||
db_name = seafile_db
|
||||
connection_charset = utf8
|
||||
16
seafile/server/seafile/conf/seahub_settings.py
Executable file
16
seafile/server/seafile/conf/seahub_settings.py
Executable file
@@ -0,0 +1,16 @@
|
||||
SECRET_KEY = "e$3$hp7u@1ba25kxxa46a7q+bc*3dfulsxhyq+nmap1f@me78$"
|
||||
SERVICE_URL = "https://seafile.rik.veenboer.xyz"
|
||||
CSRF_TRUSTED_ORIGINS = [SERVICE_URL]
|
||||
DEBUG = False
|
||||
TIME_ZONE = 'Europe/Amsterdam'
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': 'django.db.backends.mysql',
|
||||
'NAME': 'seahub_db',
|
||||
'USER': 'seafile',
|
||||
'PASSWORD': 'PASSWORD',
|
||||
'HOST': 'seafile-mysql',
|
||||
'PORT': '3306',
|
||||
'OPTIONS': {'charset': 'utf8mb4'},
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user