- Avril 2020
- Latino Nathan
- Rosca Sol
- Live: https://roscas.ch and https://roscas.ch/api
- digital ocean
- 161.35.29.177
ssh [email protected]
,ssh [email protected]
- couleurcouleur1212
- postgres
- db: ablog
- user: ablog
- pw: couleurcouleur1212
- Create & setup a new user
su
into itgit clone
current repository
- Inside ablog/backend
mv .env-example .env
& set values- setup env and
workon
optional pip install -r requirements.txt
pip install gunicorn
- Inside ablog/frontend
mv .env-example .env
& set valuesnpm -i
nuxt build
# /etc/supervisor/supervisord.conf
[supervisord]
logfile=/tmp/supervisord.log ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=50MB ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10 ; (num of main logfile rotation backups;default 10)
loglevel=info ; (log level;default info; others: debug,warn,trace)
pidfile=/tmp/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=false ; (start in foreground if true;default false)
minfds=1024 ; (min. avail startup file descriptors;default 1024)
minprocs=200 ; (min. avail process descriptors;default 200)
environment=DJANGO_SETTINGS_MODULE="config.settings"
[inet_http_server]
port=127.0.0.1:9001
[supervisorctl]
serverurl=http://127.0.0.1:9001
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[program:gunicorn]
command=/home/ablog/.virtualenvs/ablog/bin/gunicorn --access-logfile - --workers 3 --bind 0.0.0.0:8000 config.wsgi:application
directory=/home/ablog/ablog/backend
autostart=true
autorestart=true
stderr_logfile=/var/log/gunicorn.err.log
stdout_logfile=/var/log/gunicorn.out.log
[program:nuxt]
directory=/home/ablog/ablog/frontend/
command=npm run start
autostart=true
autorestart=true
stderr_logfile=/var/log/gunicorn.err.log
stdout_logfile=/var/log/gunicorn.out.log
supervisorctl reread
supervisorctl update
supervisorctl status
supervisorctl restart <name>
service supervisor [name] stop
service supervisor [name] start
# /etc/nginx/sites-available/ablog
server {
server_name roscas.ch www.roscas.ch
access_log /home/ablog/logs/backend/nginx-access.log;
access_log /home/ablog/logs/backend/nginx-error.log;
location /static/ {
alias /home/ablog/ablog/backend/static/;
}
location ~ ^/(admin|api) {
proxy_redirect off;
proxy_pass http://localhost:8000;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
nginx -t
: conf file syntax checkservice nginx restart
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx
sudo certbot --nginx -d roscas.ch -d www.roscas.ch
(must matchserver_name
inside nginx config file)
sudo apt install cron
sudo systemctl enable cron
crontab -e
- add
0 12 * * * /usr/bin/certbot renew --quiet
-
Inside
/etc/nginx/sites-available/ablog
replaceproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
withproxy_set_header X-Forwarded-Proto https;
-
Inside Django's settings file add:
USE_X_FORWARDED_HOST = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')