This commit is contained in:
2026-02-12 12:25:42 +04:00
parent 34e37707d6
commit b139c26ad6
8 changed files with 113 additions and 43 deletions

4
.gitignore vendored
View File

@@ -18,7 +18,9 @@ gitea/config/*
matrix/data/*
matrix/db
cloud/filebrowser.db
cloud/db
cloud/data
cloud/config
memos

View File

@@ -1,5 +1,9 @@
SHARED_FOLDER=/path/to/folder
USER_ID=1000
GROUP_ID=1000
ADMIN_USER=admin
ADMIN_PASSWORD=password # Минимальная длинна 12 символов
NEXTCLOUD_DATABASE=nextcloud-db
DATABASE_USER=nextcloud
DATABASE_PASSWORD=password
DATABASE_ROOT_PASSWORD=another_password
PATH_TO_FOLDER=/path/to/folder/
NEXTCLOUD_ADMIN=admin
NEXTCLOUD_PASSWORD=password
NEXTCLOUD_DOMAIN=cloud.domain.ru

View File

@@ -1,40 +1,55 @@
services:
filebrowser:
image: docker.io/filebrowser/filebrowser:latest
container_name: filebrowser
nextcloud-db:
image: docker.io/library/mariadb:11
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
container_name: nextcloud-db
volumes:
# Папка с вашими файлами (замените /path/to/your/files на реальный путь)
- ${SHARED_FOLDER}:/srv
# База данных настроек и пользователей
- ./filebrowser.db:/database/filebrowser.db
# (Опционально) Конфигурационный файл
# - ./settings.json:/config/settings.json
- ./db:/var/lib/mysql:z
environment:
- PUID=${USER_ID:?}
- PGID=${GROUP_ID:?}
entrypoint: ["/bin/sh", "-c"]
command:
- |
if [ ! -s /database/filebrowser.db ]; then
filebrowser config init --database /database/filebrowser.db
filebrowser config set --auth.method=json --database /database/filebrowser.db
fi
filebrowser config set --root /srv --database /database/filebrowser.db
filebrowser users add ${ADMIN_USER:?} ${ADMIN_PASSWORD:?} --perm.admin --scope "." --database /database/filebrowser.db || \
filebrowser users update ${ADMIN_USER:?} --password ${ADMIN_PASSWORD:?} --scope "." --database /database/filebrowser.db
filebrowser --database /database/filebrowser.db --address 0.0.0.0 --port 8080 --root /srv
deploy:
resources:
limits:
cpus: '1.0'
memory: 512M
reservations:
memory: 256M
- MARIADB_DATABASE=${NEXTCLOUD_DATABASE:?}
- MARIADB_USER=${DATABASE_USER:?}
- MARIADB_PASSWORD=${DATABASE_PASSWORD:?}
- MARIADB_ROOT_PASSWORD=${DATABASE_ROOT_PASSWORD:?}
networks:
- private_cloud_network
nextcloud-redis:
image: docker.io/library/redis:alpine
restart: always
container_name: nextcloud-redis
networks:
- private_cloud_network
nextcloud:
image: docker.io/library/nextcloud:latest
restart: always
container_name: nextcloud
volumes:
- ${PATH_TO_FOLDER:?}:/var/www/external_storage:z
- ./data:/var/www/html/data:z
- ./config:/var/www/html/config:z
environment:
- MYSQL_PASSWORD=${DATABASE_PASSWORD:?}
- MYSQL_DATABASE=${NEXTCLOUD_DATABASE:?}
- MYSQL_USER=${DATABASE_USER:?}
- MYSQL_HOST=nextcloud-db
- REDIS_HOST=nextcloud-redis
- NEXTCLOUD_ADMIN_USER=${NEXTCLOUD_ADMIN:?}
- NEXTCLOUD_ADMIN_PASSWORD=${NEXTCLOUD_PASSWORD:?}
- NEXTCLOUD_TRUSTED_DOMAINS=${NEXTCLOUD_DOMAIN:?}
depends_on:
- nextcloud-db
- nextcloud-redis
networks:
- cloud_network
- private_cloud_network
networks:
cloud_network:
name: cloud_network
driver: bridge
private_cloud_network:
name: private_cloud_network
driver: bridge

5
disk/.env.example Normal file
View File

@@ -0,0 +1,5 @@
SHARED_FOLDER=/path/to/folder
USER_ID=1000
GROUP_ID=1000
ADMIN_USER=admin
ADMIN_PASSWORD=password # Минимальная длинна 12 символов

40
disk/docker-compose.yml Normal file
View File

@@ -0,0 +1,40 @@
services:
filebrowser:
image: docker.io/filebrowser/filebrowser:latest
container_name: filebrowser
restart: always
volumes:
# Папка с вашими файлами (замените /path/to/your/files на реальный путь)
- ${SHARED_FOLDER}:/srv
# База данных настроек и пользователей
- ./filebrowser.db:/database/filebrowser.db
# (Опционально) Конфигурационный файл
# - ./settings.json:/config/settings.json
environment:
- PUID=${USER_ID:?}
- PGID=${GROUP_ID:?}
entrypoint: ["/bin/sh", "-c"]
command:
- |
if [ ! -s /database/filebrowser.db ]; then
filebrowser config init --database /database/filebrowser.db
filebrowser config set --auth.method=json --database /database/filebrowser.db
fi
filebrowser config set --root /srv --database /database/filebrowser.db
filebrowser users add ${ADMIN_USER:?} ${ADMIN_PASSWORD:?} --perm.admin --scope "." --database /database/filebrowser.db || \
filebrowser users update ${ADMIN_USER:?} --password ${ADMIN_PASSWORD:?} --scope "." --database /database/filebrowser.db
filebrowser --database /database/filebrowser.db --address 0.0.0.0 --port 8080 --root /srv
deploy:
resources:
limits:
cpus: '1.0'
memory: 512M
reservations:
memory: 256M
networks:
- disk_network
networks:
disk_network:
name: disk_network
driver: bridge

BIN
disk/filebrowser.db Normal file

Binary file not shown.

View File

@@ -23,10 +23,11 @@ services:
networks:
- proxy_network
- gitea_network
- cloud_network
- disk_network
- matrix_network
- memos_network
- homepage_network
- cloud_network
certbot:
image: docker.io/certbot/certbot
@@ -73,9 +74,9 @@ networks:
gitea_network:
external: true
name: gitea_network
cloud_network:
disk_network:
external: true
name: cloud_network
name: disk_network
matrix_network:
external: true
name: matrix_network
@@ -85,3 +86,6 @@ networks:
homepage_network:
external: true
name: homepage_network
cloud_network:
external: true
name: cloud_network

View File

@@ -2,7 +2,7 @@
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name domain.ru www.domain.ru git.domain.ru cloud.domain.ru m.domain.ru chat.domain.ru;
server_name domain.ru www.domain.ru git.domain.ru disk.domain.ru cloud.domain.ru m.domain.ru chat.domain.ru todo.domain.ru draw.domain.ru;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
@@ -55,13 +55,13 @@ server {
}
}
# 4. Cloud
# 4. Disk
server {
listen 443 ssl;
server_name cloud.domain.ru;
server_name disk.domain.ru;
ssl_certificate /etc/letsencrypt/live/cloud.domain.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/cloud.domain.ru/privkey.pem;
ssl_certificate /etc/letsencrypt/live/disk.domain.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/disk.domain.ru/privkey.pem;
client_max_body_size 0;