Compare commits

..

3 Commits

Author SHA1 Message Date
a8a48644af Merge pull request 'dev' (#1) from dev into main
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: #1
2026-03-31 15:25:51 -04:00
8f34d9388f Fix logout 405: use POST form instead of GET link
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Django 5+ LogoutView rejects GET requests.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 22:23:32 +03:00
e119e79751 Add dev environment: debug subdomain, IP restriction, separate container
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- Add debug.killmybacklog.com nginx config (IP-restricted to 164.215.8.152)
- Add django-dev container on port 8081 in docker-compose
- Add dev branch pipeline step deploying to django-dev
- Add killmybacklog.com and debug subdomain to ALLOWED_HOSTS/CSRF origins

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 22:09:53 +03:00
4 changed files with 54 additions and 3 deletions

View File

@@ -1,6 +1,6 @@
when:
branch: main
event: [push, manual]
branch: [main, dev]
steps:
test:
@@ -10,7 +10,6 @@ steps:
- python manage.py test backlogger --verbosity=2
environment:
DJANGO_SECRET_KEY: ci-test-key
DATABASE_URL: sqlite:///tmp/test.db
build-and-deploy:
image: docker:cli
@@ -23,3 +22,19 @@ steps:
- docker build -t k-boris-website /opt/services/app/
- docker compose -f /opt/services/docker-compose.yml up -d --no-deps django
depends_on: [test]
when:
branch: main
build-and-deploy-dev:
image: docker:cli
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /opt/services:/opt/services
commands:
- mkdir -p /opt/services/app-dev
- cp -r . /opt/services/app-dev/
- docker build -t k-boris-website-dev /opt/services/app-dev/
- docker compose -f /opt/services/docker-compose.yml up -d --no-deps django-dev
depends_on: [test]
when:
branch: dev

View File

@@ -157,7 +157,7 @@
<header class="site-header">
<a class="brand" href="/">k-boris.tech</a>
<nav>
<a href="{% url 'logout' %}">Log out</a>
<form method="post" action="{% url 'logout' %}" style="display:inline">{% csrf_token %}<button type="submit" style="background:none;border:none;color:#64748b;font-size:0.85rem;cursor:pointer;padding:0">Log out</button></form>
</nav>
</header>

View File

@@ -12,6 +12,7 @@ ALLOWED_HOSTS = [
'admin.k-boris.tech',
'killmybacklog.com',
'www.killmybacklog.com',
'debug.killmybacklog.com',
'localhost',
'127.0.0.1',
]
@@ -22,6 +23,7 @@ CSRF_TRUSTED_ORIGINS = [
'https://admin.k-boris.tech',
'https://killmybacklog.com',
'https://www.killmybacklog.com',
'https://debug.killmybacklog.com',
]
INSTALLED_APPS = [

View File

@@ -0,0 +1,34 @@
server {
listen 80;
listen [::]:80;
server_name debug.killmybacklog.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name debug.killmybacklog.com;
ssl_certificate /etc/letsencrypt/live/debug.killmybacklog.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/debug.killmybacklog.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
client_max_body_size 10m;
allow 164.215.8.152;
deny all;
location = / {
return 301 /backlogger/;
}
location / {
proxy_pass http://127.0.0.1:8081;
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;
}
}