- /form/ - создание формы
- /data/ - вывод данных всех введенных форм в JSON
- Войти в систему как root:
ssh root@your_server_ip_or_domain
Ввести пароль root.
- Разрешить SSH соединения для брэндмауэра:
ufw allow OpenSSH
- Включить брэндмауэр:
ufw enable
- Обновить локальный индекс пакетов:
sudo apt update
- Установить NGINX:
sudo apt install nginx
- Настроить брандмауэр:
sudo ufw allow 'Nginx Full'
- Установить необходимые пакеты:
sudo apt install python3-pip python3-venv python3-dev build-essential libssl-dev libffi-dev python3-setuptools postgresql libpq-dev
- Создать каталог для приложения и перейти в него:
mkdir ~/myproject
cd ~/myproject
- Созадть виртуальное окружение и активировать его:
python3 -m venv venv
source venv/bin/activate
- Установить необходимые пакеты:
pip install wheel gunicorn psycopg2
- Запустить программную оболочку PostgreSQL:
sudo su - postgres
psql
- Добавить пароль суперпользователя PostgreSQL:
alter user postgres password 'root';
- Создать базу данных:
create database inputsdata;
- Выйти из программной оболочки (Ctrl + D):
exit
exit
- Склонировать репозиторий с проектом:
git clone https://github.com/astivard/adbf4053.git
- Перейти в родительскую папку проекта:
cd adbf4053/
- Установить необходимые пакеты:
pip install -r requirements.txt
- Разрешить доступ к порту 5000:
sudo ufw allow 5000
- Запустить приложение для создания БД:
python3 src/app.py
- Выключить виртуальное окружение:
deactivate
- Создать юнит-файл:
sudo nano /etc/systemd/system/myproject.service
- Добавить следующее содержимое и сохранить:
[Unit]
Description=Gunicorn instance to serve myproject
After=network.target
[Service]
User=root
Group=www-data
WorkingDirectory=/root/myproject/adbf4053/src
Environment="PATH=/root/myproject/venv/bin"
ExecStart=/root/myproject/venv/bin/gunicorn --workers 3 --bind unix:myproject.sock -m 007 wsgi:app
[Install]
WantedBy=multi-user.target
- Запустить созданную службу Gunicorn и включить её запуск при загрузке:
sudo systemctl start myproject
sudo systemctl enable myproject
- Создать файл конфигурации Nginx:
sudo nano /etc/nginx/sites-available/myproject
- Добавить следующее содержимое (в server_name следует указать IP-адрес вашего сервера или его доменное имя):
server {
listen 80;
server_name your_server_ip_or_domain;
location / {
include proxy_params;
proxy_pass http://unix:/root/myproject/adbf4053/src/myproject.sock;
}
}
- Сохранить конфигурацию и выйти.
- Включить конфигурацию блока сервера Nginx (связать файл конфигурации с sites-enabled каталогом):
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled
- Перезапустить Nginx чтобы прочитать новую конфигурацию:
sudo systemctl restart nginx
- Удалить доступ через порт 5000:
sudo ufw delete allow 5000
- Добавить доступ к файлу сокета Gunicorn:
sudo chmod 755 /root
- Перейти по адресу приложения и проверить его работоспособность:
http://your_server_ip_or_domain