Files
training-software/waitlist/migrations/0001_initial.py
Paperclip DevOpsSRE 4b8622d197
Some checks failed
Deploy Waitlist / Deploy to VPS (push) Failing after 2m26s
feat(TRA-306): add waitlist app + VPS deploy workflow
Adds Django waitlist app to serve the launch-gating endpoints:
- GET  /training/django-cohort/waitlist  → HTML cohort waitlist page
- POST /v1/waitlist/django-cohort        → JSON signup with attribution

Changes:
- waitlist/ app: WaitlistSignup model, views, urls, admin, template
- config/settings/waitlist.py: minimal prod settings for waitlist-only deploy
- config/urls_waitlist.py: slimmed URL conf (waitlist + healthz + admin)
- config/urls.py: registers waitlist routes on full project
- config/settings/base.py: adds waitlist to INSTALLED_APPS
- docker-compose.waitlist.yml: Traefik-labelled deploy for VPS
- requirements/waitlist.txt: minimal dependency set for waitlist build
- .gitea/workflows/deploy-waitlist.yml: CI deploy job using Docker socket
- Dockerfile: parameterise DJANGO_SETTINGS_FOR_COLLECTSTATIC

DNS action required after deploy (board):
  api.usepaperclip.app  → 76.13.129.223 (VPS)
  usepaperclip.app      → 76.13.129.223 (VPS) OR Vercel creds for Next.js fix

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-07 10:17:25 +02:00

35 lines
1.1 KiB
Python

from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = []
operations = [
migrations.CreateModel(
name="WaitlistSignup",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("name", models.CharField(blank=True, max_length=120)),
("email", models.EmailField(max_length=254, unique=True)),
("source", models.CharField(blank=True, max_length=80)),
("attribution", models.JSONField(blank=True, default=dict)),
("created_at", models.DateTimeField(auto_now_add=True)),
("updated_at", models.DateTimeField(auto_now=True)),
],
options={
"ordering": ["-created_at"],
},
),
]