add guide up in docker compose memos note
This commit is contained in:
93
README.md
93
README.md
@@ -1,2 +1,93 @@
|
||||
# memos-docker
|
||||
Up momos server note on docker
|
||||
### `memos.domain.com` указан как пример
|
||||
### Up mуmos server note on docker
|
||||
### После установки докера и докер compose
|
||||
|
||||
### 1. Создадим папку для проекта
|
||||
```
|
||||
mkdir -p /etc/docker/memos
|
||||
cd /etc/docker/memos
|
||||
```
|
||||
### 2. Создаем `docker-compose.yml` и поднимаем контейнер
|
||||
|
||||
```
|
||||
nano docker-compose.yml
|
||||
```
|
||||
|
||||
#### Cодержимое `docker-compose`
|
||||
```yml
|
||||
services:
|
||||
memos:
|
||||
image: neosmemo/memos:stable
|
||||
container_name: memos
|
||||
ports:
|
||||
- "127.0.0.1:5230:5230"
|
||||
volumes:
|
||||
- /root/.memos:/var/opt/memos
|
||||
environment:
|
||||
- MEMOS_MODE=prod
|
||||
- MEMOS_PORT=5230
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
proxy: # Подключаем контейнер к внешней сети "proxy" (используется Traefik)
|
||||
labels: # Метки для интеграции с Traefik (обратный прокси)
|
||||
- "traefik.enable=true" # Включаем обработку контейнера Traefik
|
||||
- "traefik.http.routers.memos.entrypoints=web" # Определяем HTTP-вход (порт 80)
|
||||
- "traefik.http.routers.memos.rule=Host(`memos.domain.com`)" # Трафик на этот домен будет направляться в данный контейнер
|
||||
- "traefik.http.middlewares.memos-https-redirect.redirectscheme.scheme=https" # Middleware для редиректа с HTTP на HTTPS
|
||||
- "traefik.http.routers.memos.middlewares=memos-https-redirect" # Применяем middleware редиректа к HTTP-маршруту
|
||||
- "traefik.http.routers.memos-secure.entrypoints=websecure" # Определяем HTTPS-вход (порт 443)
|
||||
- "traefik.http.routers.memos-secure.rule=Host(`memos.domain.com`)" # HTTPS-маршрут для того же домена
|
||||
- "traefik.http.routers.memos-secure.tls=true" # Включаем TLS (HTTPS)
|
||||
- "traefik.http.routers.memos-secure.service=memos" # Привязываем HTTPS-маршрут к сервису memos
|
||||
- "traefik.http.services.memos.loadbalancer.server.port=5230" # Указываем внутренний порт, на котором memos слушает в контейнере
|
||||
- "traefik.docker.network=proxy" # Указываем, что Traefik должен искать контейнер в сети "proxy"
|
||||
|
||||
networks:
|
||||
proxy: # Определение внешней сети для взаимодействия с Traefik
|
||||
external: false
|
||||
```
|
||||
#### Поднимаем контейнер через команду `docker compose up -d` так же смотрим статус контейнера ниже пример того чего мы должны увидеть
|
||||
```bash
|
||||
root@server-gw-git:/etc/docker/memos# docker ps
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
2a2e7864c6e6 neosmemo/memos:stable "/usr/local/memos/en…" 18 hours ago Up 18 hours 127.0.0.1:5230->5230/tcp memos
|
||||
root@server-gw-git:/etc/docker/memos#
|
||||
```
|
||||
### 3. Настраиваем nginx т.к безопаснее будет заходить на сайт по домен
|
||||
#### Если у вас не установлен `nginx` и `certbot` то устанавливаем и включаем
|
||||
```
|
||||
apt install certbot python3-certbot-nginx nginx
|
||||
systemctl enable --now nginx
|
||||
```
|
||||
##### Настройка самого nginx
|
||||
##### Создаем файл
|
||||
```
|
||||
nano /etc/nginx/sites-available/memos.domain.com
|
||||
```
|
||||
Содержимое `memos.domain.com`
|
||||
```
|
||||
server {
|
||||
server_name memos.domain.com;
|
||||
|
||||
location / {
|
||||
client_max_body_size 512M;
|
||||
proxy_pass http://127.0.0.1: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;
|
||||
add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
|
||||
}
|
||||
}
|
||||
```
|
||||
### 4. Обязательно делаем ссылку без нее не будет работать и перезапускаем nginx
|
||||
```bash
|
||||
ln -s /etc/nginx/sites-available/memos.domain.com /etc/nginx/sites-enabled/
|
||||
systemctl restart nginx
|
||||
```
|
||||
|
||||
### 5. Получение сертификата
|
||||
Пишем команду `certbot --nginx -d note-reisber.lord-mikrotik.ru` после этого вы можете переходить на доменное имя `memos.domain.com`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user