Добавляем DNS-записи

Первым делом будет необходимо добавить IP-адрес нашего сервера в A-запись домена, на котором вы хотите развернуть сервер. В данном уроке я буду делать это на бесплатном домене, который мне выдал провайдер: notes.1243685-ydmnsky.tw1.ru

Для этого в настройках DNS в панели управления вашего cloud-провайдера/хостинга доменов добавьте DNS-запись типа A с IP-адресом вашего сервера.

Настраиваем nginx

Подключаемся к нашему серверу по SSH Обновляем систему

sudo apt update && sudo apt upgrade -y

Устанавливаем nginx

sudo apt install nginx

Создаем конфигурационный файл нашей веб-панели /etc/nginx/sites-available/joplin (от имени администратора)

server {
    listen 80;
    server_name notes.1243685-ydmnsky.tw1.ru; # Замените на ваш домен

    location / {
        proxy_pass http://127.0.0.1:22300;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Создаем линк в sites-enabled

sudo ln -s /etc/nginx/sites-available/joplin /etc/nginx/sites-enabled/

Поднимаем docker-контейнеры

Устанавливаем докер

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Создаем в домашней директории директорию joplin и переходим в нее

cd
mkdir joplin
cd joplin

Cоздаем в ней docker-compose.yml файл со следующим содержанием (не забудьте поменять пароль и домен):

services:
    db:
        image: postgres:15
        volumes:
            - /docker/joplindb:/var/lib/postgresql/data
        ports:
            - "5432:5432"
        restart: unless-stopped
        environment:
            - POSTGRES_PASSWORD=sdklksnlbvnfoxicxcfvhd #Поменяйте пароль
            - POSTGRES_USER=postgres
            - POSTGRES_DB=joplin
    app:
        image: joplin/server:latest
        depends_on:
            - db
        ports:
            - "22300:22300"
        restart: unless-stopped
        environment:
            - APP_PORT=22300
            - APP_BASE_URL=http://notes.1243685-ydmnsky.tw1.ru #Поменяйте домен
            - DB_CLIENT=pg
            - POSTGRES_PASSWORD=sdklksnlbvnfoxicxcfvhd #Поменяйте пароль (на  тот же самый, что и выше)
            - POSTGRES_DATABASE=joplin
            - POSTGRES_USER=postgres
            - POSTGRES_PORT=5432
            - POSTGRES_HOST=db
            - MAILER_ENABLED=0
volumes:
  joplindb:

Поднимаем docker-контейнеры, перезапускаем nginx и проверяем что сайт открывается.

sudo docker compose up -d
sudo systemctl restart nginx

Устанавливаем certbot

sudo apt install certbot python3-certbot-nginx

Выпускаем сертификаты и автоматически обновляем nginx-конфигу:

sudo certbot -d notes.1243685-ydmnsky.tw1.ru --nginx

В файле docker-compose.yml обновляем APP_BASE_URL=https://notes.1243685-ydmnsky.tw1.ru (меняем протокол с http на https) и перезапускаем контейнеры

sudo docker compose down
sudo docker compose up -d

Заходим на сайт еще раз, проверяем, что все работает.

Базовая настройка в веб-панели

Заходим по дефолтным кредам

Email:
admin@localhost
Password:
admin

Сразу меняем их нажав на Change it now В панели Admin во вкладке Users можно добавить пользователей и установить им пароли.