- IONOS: ~2 EUR/miesiąc za podstawowy VPS
- Hetzner: ~3 EUR/miesiąc
- DigitalOcean: ~4 USD/miesiąc
- 1 vCPU
- 1GB RAM
- 20GB SSD
- Ubuntu 22.04 LTS
ssh root@TWÓJ_IP_SERWERAapt update && apt upgrade -yadduser flask_user usermod -aG sudo flask_usersu - flask_usersudo apt install python3 python3-pip python3-venv git -ysudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list sudo apt update sudo apt install caddymkdir -p ~/apps/{projekt1,projekt2,projekt3,projekt4} mkdir ~/logscd ~/apps/projekt1git clone https://github.com/twoj-username/projekt1.git . # lub scp -r ./projekt1 flask_user@TWÓJ_IP:~/apps/projekt1/python3 -m venv venv source venv/bin/activate pip install -r requirements.txtpip install gunicorngunicorn --bind 0.0.0.0:5001 app:appsudo nano /etc/systemd/system/projekt1.service[Unit] Description=Projekt1 Flask Application After=network.target [Service] Type=simple User=flask_user WorkingDirectory=/home/flask_user/apps/projekt1 ExecStart=/home/flask_user/apps/projekt1/venv/bin/gunicorn --bind 127.0.0.1:5001 app:app Restart=always RestartSec=3 Environment=FLASK_ENV=production [Install] WantedBy=multi-user.targetsudo systemctl daemon-reload sudo systemctl enable projekt1 sudo systemctl start projekt1 sudo systemctl status projekt1sudo nano /etc/caddy/Caddyfile# Projekt 1 projekt1.twoja-domena.pl { reverse_proxy localhost:5001 log { output file /var/log/caddy/projekt1.log } } # Projekt 2 projekt2.twoja-domena.pl { reverse_proxy localhost:5002 log { output file /var/log/caddy/projekt2.log } } # Projekt 3 projekt3.twoja-domena.pl { reverse_proxy localhost:5003 log { output file /var/log/caddy/projekt3.log } } # Projekt 4 projekt4.twoja-domena.pl { reverse_proxy localhost:5004 log { output file /var/log/caddy/projekt4.log } } # Alternatywnie - wszystko na jednej domenie z ścieżkami: # twoja-domena.pl { # handle /projekt1/* { # reverse_proxy localhost:5001 # } # handle /projekt2/* { # reverse_proxy localhost:5002 # } # handle /projekt3/* { # reverse_proxy localhost:5003 # } # handle /projekt4/* { # reverse_proxy localhost:5004 # } # } sudo systemctl reload caddy- Kup domenę (np. na nazwa.pl, OVH)
- Ustaw rekordy DNS:
- A record: projekt1.twoja-domena.pl → IP_SERWERA
- A record: projekt2.twoja-domena.pl → IP_SERWERA
- itd.
- Użyj serwisów jak FreeDNS, No-IP
- Lub skonfiguruj Cloudflare Tunnel
# W Caddyfile użyj IP zamiast domeny: IP_SERWERA:80 { handle /projekt1/* { reverse_proxy localhost:5001 } # itd... } nano ~/update_app.sh#!/bin/bash APP_NAME=$1 cd ~/apps/$APP_NAME git pull origin main source venv/bin/activate pip install -r requirements.txt sudo systemctl restart $APP_NAME echo "Aplikacja $APP_NAME została zaktualizowana!"chmod +x ~/update_app.sh./update_app.sh projekt1sudo systemctl status projekt1 sudo systemctl status projekt2 # itd...sudo journalctl -u projekt1 -f sudo tail -f /var/log/caddy/projekt1.loghtop df -h free -hsudo ufw allow ssh sudo ufw allow 80 sudo ufw allow 443 sudo ufw enablesudo apt install unattended-upgrades sudo dpkg-reconfigure unattended-upgradesnano ~/backup.sh#!/bin/bash DATE=$(date +%Y%m%d_%H%M%S) tar -czf ~/backup_$DATE.tar.gz ~/apps/ echo "Backup utworzony: backup_$DATE.tar.gz"- VPS IONOS: ~2 EUR/miesiąc
- Domena: ~10-15 EUR/rok (opcjonalnie)
- Łącznie: ~2-3 EUR/miesiąc
✅ Bardzo niski koszt
✅ Pełna kontrola nad serwerem
✅ Automatyczne SSL (Caddy)
✅ Łatwe zarządzanie wieloma aplikacjami
✅ Dobra wydajność
✅ Możliwość skalowania
Jeśli masz problemy z którymś krokiem, sprawdź:
- Logi systemd:
sudo journalctl -u nazwa_serwisu - Logi Caddy:
sudo journalctl -u caddy - Status serwisów:
sudo systemctl status nazwa_serwisu
Powodzenia z deploymentem! 🚀