mirror of
https://github.com/StepanovPlaton/HomeServerServices.git
synced 2026-04-03 20:30:44 +04:00
Compare commits
16 Commits
6aa51c8387
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 7f38d28019 | |||
| 2b6e9d0061 | |||
| c61c1ba072 | |||
| 1b6527cedd | |||
| 95cd3c441c | |||
| a150d7fddd | |||
| ec5fb34b03 | |||
| f3d947db93 | |||
| 696321ecb8 | |||
| b139c26ad6 | |||
| 10876634ec | |||
| 396ef88209 | |||
| 2fb783d327 | |||
| 34e37707d6 | |||
| 7bda7e7459 | |||
| dd5a5f6fca |
17
.gitignore
vendored
17
.gitignore
vendored
@@ -10,10 +10,6 @@ proxy/nginx/logs/*
|
|||||||
proxy/ssl/conf/*
|
proxy/ssl/conf/*
|
||||||
proxy/ssl/www/*
|
proxy/ssl/www/*
|
||||||
proxy/ddns/domains.txt
|
proxy/ddns/domains.txt
|
||||||
proxy/crowdsec/*
|
|
||||||
!proxy/crowdsec/config
|
|
||||||
proxy/crowdsec/config/*
|
|
||||||
!proxy/crowdsec/config/acquis.yaml
|
|
||||||
|
|
||||||
gitea/data/*
|
gitea/data/*
|
||||||
gitea/db
|
gitea/db
|
||||||
@@ -22,9 +18,16 @@ gitea/config/*
|
|||||||
matrix/data/*
|
matrix/data/*
|
||||||
matrix/db
|
matrix/db
|
||||||
|
|
||||||
cloud/filebrowser.db
|
cloud/db
|
||||||
|
cloud/data
|
||||||
|
cloud/config
|
||||||
|
cloud/apps
|
||||||
|
|
||||||
pihole/etc-pihole/*
|
disk/filebrowser.db
|
||||||
pihole/etc-dnsmasq.d/*
|
|
||||||
|
memos/memos/*.db
|
||||||
|
memos/memos/*.db-wal
|
||||||
|
memos/memos/*.db-shm
|
||||||
|
memos/memos/.thumbnail_cache
|
||||||
|
|
||||||
!.keep
|
!.keep
|
||||||
|
|||||||
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[submodule "homepage/src"]
|
||||||
|
path = homepage/src
|
||||||
|
url = https://github.com/StepanovPlaton/AboutMe
|
||||||
16
README.md
16
README.md
@@ -46,11 +46,15 @@
|
|||||||
- Автоматическое обновление DNS записей у регистратора [рег.ру](https://www.reg.ru)
|
- Автоматическое обновление DNS записей у регистратора [рег.ру](https://www.reg.ru)
|
||||||
- **Git-сервер Gitea** для хостинга репозиториев
|
- **Git-сервер Gitea** для хостинга репозиториев
|
||||||
- **FileBrowser** — веб-интерфейс для управления файлами через браузер
|
- **FileBrowser** — веб-интерфейс для управления файлами через браузер
|
||||||
- **Matrix Synapse** — собственный сервер для мессенджера Matrix с веб-клиентом Element
|
- **Memos** — быстрые заметки через веб-интерфейс
|
||||||
|
- **Matrix Synapse** — собственный сервер для мессенджера Matrix с веб-клиентом Element и административной панелью
|
||||||
|
- **NextCloud** — полнофункциональное облачное хранилище с синхронизацией файлов, календарем, контактами, задачами и многими другими функциями
|
||||||
- Блокировка рекламы, нежелательной слежки, частичная защита от атак с помощью **AdGuard Home**
|
- Блокировка рекламы, нежелательной слежки, частичная защита от атак с помощью **AdGuard Home**
|
||||||
- Управление контейнерами через **Portainer**
|
- Управление контейнерами через **Portainer**
|
||||||
- Все **сервисы используют переменные окружения** для гибкой настройки и примеры конфигурации
|
- Все **сервисы используют переменные окружения** для гибкой настройки и примеры конфигурации
|
||||||
|
|
||||||
|
> 💡 **Важно:** Все сервисы модульные и независимые. Вы можете устанавливать только те, которые вам действительно нужны. Подробные инструкции по установке каждого сервиса находятся в файле [Services.md](./Services.md).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📝 Подготовка
|
## 📝 Подготовка
|
||||||
@@ -108,4 +112,12 @@
|
|||||||
|
|
||||||
#### FileBrowser
|
#### FileBrowser
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
#### Memos
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
#### NextCloud
|
||||||
|
|
||||||
|

|
||||||
|
|||||||
67
Services.md
67
Services.md
@@ -99,10 +99,10 @@ podman-compose up -d
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 8️⃣ Cloud (FileBrowser) — веб-интерфейс для управления файлами
|
## 8️⃣ FileBrowser — простой веб-интерфейс для управления файлами
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd cloud
|
cd disk
|
||||||
cp .env.example .env && vim .env
|
cp .env.example .env && vim .env
|
||||||
touch filebrowser.db && podman unshare chown -R 1000:1000 filebrowser.db
|
touch filebrowser.db && podman unshare chown -R 1000:1000 filebrowser.db
|
||||||
podman-compose up -d
|
podman-compose up -d
|
||||||
@@ -110,7 +110,19 @@ podman-compose up -d
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 9️⃣ Matrix — собственный сервер для мессенджера Matrix
|
## 9️⃣ Memos — быстрые заметки
|
||||||
|
|
||||||
|
> Memos — это простой и быстрый способ создавать и управлять заметками через веб-интерфейс.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd memos
|
||||||
|
cp .env.example .env && vim .env
|
||||||
|
podman-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔟 Matrix — собственный сервер для мессенджера Matrix
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd matrix
|
cd matrix
|
||||||
@@ -147,7 +159,54 @@ podman exec -it matrix-synapse register_new_matrix_user -c /data/homeserver.yaml
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🔟 Nginx Reverse Proxy (Entrypoint)
|
## 1️⃣1️⃣ NextCloud — личное многофункциональное облако
|
||||||
|
|
||||||
|
> NextCloud — полнофункциональное облачное хранилище с возможностью синхронизации файлов, календарем, контактами, задачами и многими другими функциями.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd cloud
|
||||||
|
cp .env.example .env && vim .env
|
||||||
|
mkdir db
|
||||||
|
mkdir config && podman unshare chown -R 33:33 config
|
||||||
|
mkdir data && podman unshare chown -R 33:33 data
|
||||||
|
mkdir apps && podman unshare chown -R 33:33 apps
|
||||||
|
podman-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
> ⚠️ В docker-compose.yml есть переменные, которые можно указать при первом запуске, но они мешают если пересоздавать контейнер не с нуля.
|
||||||
|
|
||||||
|
Настраиваем NextCloud через веб-форму после запуска Nginx. Выбираем пользователя по умолчанию, БД. В разделе приложений можем установить дополнительные модули:
|
||||||
|
|
||||||
|
**Базовые модули:**
|
||||||
|
- Calendar — календарь
|
||||||
|
- Contacts — контакты
|
||||||
|
- Deck — доски задач
|
||||||
|
- Whiteboard — виртуальная доска
|
||||||
|
- Forms — формы
|
||||||
|
|
||||||
|
**Комплексные модули:**
|
||||||
|
- **NextCloud Office** — конфигурируется с Collabora Office, которая запускается на отдельном домене, его нужно указать в настройках
|
||||||
|
- **NextCloud Talk** — видеоконференции. Для доступа извне сети нужен модуль CoTurn, он запускается на отдельном домене
|
||||||
|
> ⚠️ Для этого модуля нужно открыть UDP порты с SSL, что проблематично. Это я пока не настраивал
|
||||||
|
|
||||||
|
> Для работы NextCloud Office в `config/config.php` нужно добавить:
|
||||||
|
> ```php
|
||||||
|
> 'trusted_proxies' => ['10.89.0.1'],
|
||||||
|
> 'overwrite.cli.url' => 'https://cloud.domain.ru',
|
||||||
|
> 'overwriteprotocol' => 'https',
|
||||||
|
> 'overwritehost' => 'cloud.domain.ru',
|
||||||
|
> ```
|
||||||
|
>
|
||||||
|
> `10.89.0.1` — это Gateway для Podman
|
||||||
|
> `cloud.domain.ru` меняем на наш домен
|
||||||
|
|
||||||
|
**Настройка внешнего хранилища:**
|
||||||
|
|
||||||
|
Также устанавливаем модуль **External Storage Support** и в его настройках добавляем диск локального типа по пути `/var/www/external_storage` (это внешний диск, указанный в `.env`).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1️⃣2️⃣ Nginx Reverse Proxy (Entrypoint)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd proxy
|
cd proxy
|
||||||
|
|||||||
@@ -1,5 +1,13 @@
|
|||||||
SHARED_FOLDER=/path/to/folder
|
NEXTCLOUD_DATABASE=nextcloud-db
|
||||||
USER_ID=1000
|
DATABASE_USER=nextcloud
|
||||||
GROUP_ID=1000
|
DATABASE_PASSWORD=password
|
||||||
ADMIN_USER=admin
|
DATABASE_ROOT_PASSWORD=another_password
|
||||||
ADMIN_PASSWORD=password # Минимальная длинна 12 символов
|
PATH_TO_FOLDER=/path/to/folder/
|
||||||
|
|
||||||
|
NEXTCLOUD_ADMIN=admin
|
||||||
|
NEXTCLOUD_PASSWORD=password
|
||||||
|
NEXTCLOUD_DOMAIN=cloud.domain.ru
|
||||||
|
|
||||||
|
COLLABORA_ADMIN=admin
|
||||||
|
COLLABORA_PASSWORD=password
|
||||||
|
COLLABORA_DOMAIN=office.domain.ru
|
||||||
|
|||||||
@@ -1,40 +1,71 @@
|
|||||||
services:
|
services:
|
||||||
filebrowser:
|
nextcloud-db:
|
||||||
image: docker.io/filebrowser/filebrowser:latest
|
image: docker.io/library/mariadb:11
|
||||||
container_name: filebrowser
|
|
||||||
restart: always
|
restart: always
|
||||||
|
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
|
||||||
|
container_name: nextcloud-db
|
||||||
volumes:
|
volumes:
|
||||||
# Папка с вашими файлами (замените /path/to/your/files на реальный путь)
|
- ./db:/var/lib/mysql:z
|
||||||
- ${SHARED_FOLDER}:/srv
|
|
||||||
# База данных настроек и пользователей
|
|
||||||
- ./filebrowser.db:/database/filebrowser.db
|
|
||||||
# (Опционально) Конфигурационный файл
|
|
||||||
# - ./settings.json:/config/settings.json
|
|
||||||
environment:
|
environment:
|
||||||
- PUID=${USER_ID:?}
|
- MARIADB_DATABASE=${NEXTCLOUD_DATABASE:?}
|
||||||
- PGID=${GROUP_ID:?}
|
- MARIADB_USER=${DATABASE_USER:?}
|
||||||
entrypoint: ["/bin/sh", "-c"]
|
- MARIADB_PASSWORD=${DATABASE_PASSWORD:?}
|
||||||
command:
|
- MARIADB_ROOT_PASSWORD=${DATABASE_ROOT_PASSWORD:?}
|
||||||
- |
|
networks:
|
||||||
if [ ! -s /database/filebrowser.db ]; then
|
- private_cloud_network
|
||||||
filebrowser config init --database /database/filebrowser.db
|
|
||||||
filebrowser config set --auth.method=json --database /database/filebrowser.db
|
nextcloud-redis:
|
||||||
fi
|
image: docker.io/library/redis:alpine
|
||||||
filebrowser config set --root /srv --database /database/filebrowser.db
|
restart: always
|
||||||
filebrowser users add ${ADMIN_USER:?} ${ADMIN_PASSWORD:?} --perm.admin --scope "." --database /database/filebrowser.db || \
|
container_name: nextcloud-redis
|
||||||
filebrowser users update ${ADMIN_USER:?} --password ${ADMIN_PASSWORD:?} --scope "." --database /database/filebrowser.db
|
networks:
|
||||||
filebrowser --database /database/filebrowser.db --address 0.0.0.0 --port 8080 --root /srv
|
- private_cloud_network
|
||||||
deploy:
|
|
||||||
resources:
|
nextcloud:
|
||||||
limits:
|
image: docker.io/library/nextcloud:latest
|
||||||
cpus: '1.0'
|
restart: always
|
||||||
memory: 512M
|
container_name: nextcloud
|
||||||
reservations:
|
volumes:
|
||||||
memory: 256M
|
- ${PATH_TO_FOLDER:?}:/var/www/external_storage:z
|
||||||
|
- ./data:/var/www/html/data:z
|
||||||
|
- ./config:/var/www/html/config:z
|
||||||
|
- ./apps:/var/www/html/custom_apps: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:
|
networks:
|
||||||
- cloud_network
|
- cloud_network
|
||||||
|
- private_cloud_network
|
||||||
|
|
||||||
|
nextcloud-collabora:
|
||||||
|
image: docker.io/collabora/code:latest
|
||||||
|
container_name: nextcloud-collabora
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- aliasgroup1=https://${NEXTCLOUD_DOMAIN:?}
|
||||||
|
- DONT_GEN_SSL_CERT=true
|
||||||
|
- server_name=${COLLABORA_DOMAIN:?}
|
||||||
|
- extra_params=--o:ssl.enable=false --o:ssl.termination=true --o:net.post_allow.host[0]=.*
|
||||||
|
- username=${COLLABORA_ADMIN:?}
|
||||||
|
- password=${COLLABORA_PASSWORD:?}
|
||||||
|
networks:
|
||||||
|
- cloud_network
|
||||||
|
- private_cloud_network
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
cloud_network:
|
cloud_network:
|
||||||
name: cloud_network
|
name: cloud_network
|
||||||
driver: bridge
|
driver: bridge
|
||||||
|
private_cloud_network:
|
||||||
|
name: private_cloud_network
|
||||||
|
driver: bridge
|
||||||
|
|||||||
5
disk/.env.example
Normal file
5
disk/.env.example
Normal 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
40
disk/docker-compose.yml
Normal 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
|
||||||
2
homepage/.env.example
Normal file
2
homepage/.env.example
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
OAUTH_GITHUB_CLIENT_ID=
|
||||||
|
OAUTH_GITHUB_CLIENT_SECRET=
|
||||||
18
homepage/docker-compose.yml
Normal file
18
homepage/docker-compose.yml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
services:
|
||||||
|
homepage:
|
||||||
|
container_name: homepage
|
||||||
|
restart: always
|
||||||
|
build:
|
||||||
|
context: src
|
||||||
|
args:
|
||||||
|
- OAUTH_GITHUB_CLIENT_ID=${OAUTH_GITHUB_CLIENT_ID:?}
|
||||||
|
- OAUTH_GITHUB_CLIENT_SECRET=${OAUTH_GITHUB_CLIENT_SECRET:?}
|
||||||
|
environment:
|
||||||
|
- NODE_ENV=production
|
||||||
|
networks:
|
||||||
|
- homepage_network
|
||||||
|
|
||||||
|
networks:
|
||||||
|
homepage_network:
|
||||||
|
driver: bridge
|
||||||
|
name: homepage_network
|
||||||
1
homepage/src
Submodule
1
homepage/src
Submodule
Submodule homepage/src added at 4f76ca5601
7
homepage/update.sh
Executable file
7
homepage/update.sh
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
cd src
|
||||||
|
git pull
|
||||||
|
cd ..
|
||||||
|
podman-compose down
|
||||||
|
podman-compose up -d --build
|
||||||
|
cd ../proxy
|
||||||
|
podman-compose restart nginx-proxy
|
||||||
1
memos/.env.example
Normal file
1
memos/.env.example
Normal file
@@ -0,0 +1 @@
|
|||||||
|
MEMOS_URL=https://todo.domain.ru
|
||||||
16
memos/docker-compose.yml
Normal file
16
memos/docker-compose.yml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
services:
|
||||||
|
memos:
|
||||||
|
image: docker.io/neosmemo/memos:stable
|
||||||
|
container_name: memos
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ./memos:/var/opt/memos
|
||||||
|
environment:
|
||||||
|
- MEMOS_INSTANCE_URL=${MEMOS_URL:?}
|
||||||
|
networks:
|
||||||
|
- memos_network
|
||||||
|
|
||||||
|
networks:
|
||||||
|
memos_network:
|
||||||
|
name: memos_network
|
||||||
|
driver: bridge
|
||||||
@@ -5,3 +5,4 @@ git
|
|||||||
cloud
|
cloud
|
||||||
matrix
|
matrix
|
||||||
chat
|
chat
|
||||||
|
todo
|
||||||
|
|||||||
@@ -23,8 +23,11 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- proxy_network
|
- proxy_network
|
||||||
- gitea_network
|
- gitea_network
|
||||||
- cloud_network
|
- disk_network
|
||||||
- matrix_network
|
- matrix_network
|
||||||
|
- memos_network
|
||||||
|
- homepage_network
|
||||||
|
- cloud_network
|
||||||
|
|
||||||
certbot:
|
certbot:
|
||||||
image: docker.io/certbot/certbot
|
image: docker.io/certbot/certbot
|
||||||
@@ -71,9 +74,18 @@ networks:
|
|||||||
gitea_network:
|
gitea_network:
|
||||||
external: true
|
external: true
|
||||||
name: gitea_network
|
name: gitea_network
|
||||||
cloud_network:
|
disk_network:
|
||||||
external: true
|
external: true
|
||||||
name: cloud_network
|
name: disk_network
|
||||||
matrix_network:
|
matrix_network:
|
||||||
external: true
|
external: true
|
||||||
name: matrix_network
|
name: matrix_network
|
||||||
|
memos_network:
|
||||||
|
external: true
|
||||||
|
name: memos_network
|
||||||
|
homepage_network:
|
||||||
|
external: true
|
||||||
|
name: homepage_network
|
||||||
|
cloud_network:
|
||||||
|
external: true
|
||||||
|
name: cloud_network
|
||||||
|
|||||||
BIN
proxy/nginx/conf.d/.default.conf.swp
Normal file
BIN
proxy/nginx/conf.d/.default.conf.swp
Normal file
Binary file not shown.
@@ -2,7 +2,7 @@
|
|||||||
server {
|
server {
|
||||||
listen 80 default_server;
|
listen 80 default_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/ {
|
location /.well-known/acme-challenge/ {
|
||||||
root /var/www/certbot;
|
root /var/www/certbot;
|
||||||
@@ -23,10 +23,13 @@ server {
|
|||||||
ssl_certificate /etc/letsencrypt/live/domain.ru/fullchain.pem;
|
ssl_certificate /etc/letsencrypt/live/domain.ru/fullchain.pem;
|
||||||
ssl_certificate_key /etc/letsencrypt/live/domain.ru/privkey.pem;
|
ssl_certificate_key /etc/letsencrypt/live/domain.ru/privkey.pem;
|
||||||
|
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
charset utf-8;
|
proxy_pass http://homepage:4321;
|
||||||
default_type text/plain;
|
proxy_set_header Host $host;
|
||||||
return 200 "Hello world!";
|
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 $scheme;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -38,6 +41,11 @@ server {
|
|||||||
ssl_certificate /etc/letsencrypt/live/git.domain.ru/fullchain.pem;
|
ssl_certificate /etc/letsencrypt/live/git.domain.ru/fullchain.pem;
|
||||||
ssl_certificate_key /etc/letsencrypt/live/git.domain.ru/privkey.pem;
|
ssl_certificate_key /etc/letsencrypt/live/git.domain.ru/privkey.pem;
|
||||||
|
|
||||||
|
# Меняем домашнюю страницу на страницу админа
|
||||||
|
location = / {
|
||||||
|
return 301 /username;
|
||||||
|
}
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
proxy_pass http://gitea:3000;
|
proxy_pass http://gitea:3000;
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
@@ -47,13 +55,13 @@ server {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# 4. Cloud
|
# 4. Disk
|
||||||
server {
|
server {
|
||||||
listen 443 ssl;
|
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 /etc/letsencrypt/live/disk.domain.ru/fullchain.pem;
|
||||||
ssl_certificate_key /etc/letsencrypt/live/cloud.domain.ru/privkey.pem;
|
ssl_certificate_key /etc/letsencrypt/live/disk.domain.ru/privkey.pem;
|
||||||
|
|
||||||
client_max_body_size 0;
|
client_max_body_size 0;
|
||||||
|
|
||||||
@@ -66,7 +74,77 @@ server {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# 4. Matrix
|
# 5. Cloud
|
||||||
|
server {
|
||||||
|
listen 443 ssl;
|
||||||
|
server_name cloud.stepanovplaton.ru;
|
||||||
|
|
||||||
|
ssl_certificate /etc/letsencrypt/live/cloud.stepanovplaton.ru/fullchain.pem;
|
||||||
|
ssl_certificate_key /etc/letsencrypt/live/cloud.stepanovplaton.ru/privkey.pem;
|
||||||
|
|
||||||
|
client_max_body_size 0;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_pass http://nextcloud;
|
||||||
|
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 $scheme;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
server {
|
||||||
|
listen 443 ssl;
|
||||||
|
server_name office.stepanovplaton.ru;
|
||||||
|
|
||||||
|
ssl_certificate /etc/letsencrypt/live/office.stepanovplaton.ru/fullchain.pem;
|
||||||
|
ssl_certificate_key /etc/letsencrypt/live/office.stepanovplaton.ru/privkey.pem;
|
||||||
|
|
||||||
|
location ^~ /browser {
|
||||||
|
proxy_pass http://nextcloud-collabora:9980;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
}
|
||||||
|
location ^~ /hosting/discovery {
|
||||||
|
proxy_pass http://nextcloud-collabora:9980;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
}
|
||||||
|
location ^~ /hosting/capabilities {
|
||||||
|
proxy_pass http://nextcloud-collabora:9980;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
}
|
||||||
|
location ~ ^/cool/(.*)/ws$ {
|
||||||
|
proxy_pass http://nextcloud-collabora:9980;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "Upgrade"; # Явно указываем Upgrade
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_read_timeout 36000s;
|
||||||
|
}
|
||||||
|
location ^~ /cool/adminws {
|
||||||
|
proxy_pass http://nextcloud-collabora:9980;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "Upgrade";
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_read_timeout 36000s;
|
||||||
|
}
|
||||||
|
location / {
|
||||||
|
proxy_pass http://nextcloud-collabora:9980;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
server {
|
||||||
|
listen 443 ssl;
|
||||||
|
server_name talk.stepanovplaton.ru;
|
||||||
|
|
||||||
|
ssl_certificate /etc/letsencrypt/live/talk.stepanovplaton.ru/fullchain.pem;
|
||||||
|
ssl_certificate_key /etc/letsencrypt/live/talk.stepanovplaton.ru/privkey.pem;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
return 200 "Nextcloud Talk TURN server not configured";
|
||||||
|
add_header Content-Type text/plain;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# 6. Matrix
|
||||||
server {
|
server {
|
||||||
listen 443 ssl;
|
listen 443 ssl;
|
||||||
server_name m.domain.ru;
|
server_name m.domain.ru;
|
||||||
@@ -101,3 +179,22 @@ server {
|
|||||||
client_max_body_size 50M;
|
client_max_body_size 50M;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# 7. Memos
|
||||||
|
server {
|
||||||
|
listen 443 ssl;
|
||||||
|
server_name todo.domain.ru;
|
||||||
|
|
||||||
|
ssl_certificate /etc/letsencrypt/live/todo.domain.ru/fullchain.pem;
|
||||||
|
ssl_certificate_key /etc/letsencrypt/live/todo.domain.ru/privkey.pem;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_pass http://memos:5230;
|
||||||
|
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 $scheme;
|
||||||
|
|
||||||
|
client_max_body_size 50M;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 104 KiB |
BIN
screenshots/memos.png
Normal file
BIN
screenshots/memos.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 59 KiB |
BIN
screenshots/nextcloud.png
Normal file
BIN
screenshots/nextcloud.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 80 KiB |
Reference in New Issue
Block a user