Deployment-track Les 8 van 8 — Bonus

🚂 Bonus: Railway PaaS

BONUS

Jouw Symfony-app in minuten live op Railway — zonder server configureren.

⏱ 20 min5 stappen Alternatief voor de VPS-aanpak
🎓 Wanneer gebruik je Railway in plaats van een VPS?
Gebruik Railway voor:
  • • Eindprojecten en presentaties
  • • Snel een demo online zetten
  • • Als je nog geen VPS wilt beheren
  • • Experimenten en prototypes
Gebruik een VPS voor:
  • • Leren hoe servers écht werken
  • • Volledige controle over de stack
  • • Productie-apps met veel verkeer
  • • Eigen domeinnaam + HTTPS
Stap 1 / 5

Wat is Railway?

Railway is een Platform as a Service (PaaS). Je pusht je code naar GitHub en Railway bouwt en host de app automatisch — geen server configureren, geen nginx, geen Certbot.

🐙
Koppel GitHub

Verbind je repo — Railway detecteert automatisch je tech stack

⚙️
Railway bouwt

Bij elke git push bouwt Railway automatisch een nieuwe versie

🌐
Live URL

Je krijgt gratis een URL op *.up.railway.app met HTTPS

Prijzen (2024)

Hobby plan: $5/maand — 512 MB RAM, voldoende voor eindprojecten

Pro plan: $20/maand — meer resources, teams

• Database add-ons worden apart berekend per gebruik

Stap 2 / 5

Project aanmaken en GitHub koppelen

Vereiste: je Symfony-app staat op GitHub

Zorg dat je een composer.json hebt in de root van je repo. Railway herkent dit als PHP-project.

Stap voor stap
  1. 1. Ga naar railway.app en maak een account aan (log in met GitHub)
  2. 2. Klik op New Project → Deploy from GitHub repo
  3. 3. Selecteer je Symfony-repo
  4. 4. Railway start de eerste build — dit duurt 2–5 minuten
  5. 5. Je ziet de build-logs en een URL zodra het klaar is
Stap 3 / 5

Omgevingsvariabelen instellen

In Railway stel je omgevingsvariabelen in via het dashboard — net zoals je .env.local op een VPS aanmaakt, maar dan via een UI.

Via: Project → Variables → New Variable
Variable
APP_ENV
Value
prod
Variable
APP_SECRET
Value
jouw_64char_secret
Variable
DATABASE_URL
Value
zie stap 4 →
💡 Automatische DATABASE_URL

Als je een MySQL-database toevoegt via Railway (stap 4), voegt Railway automatisch een DATABASE_URL variabele toe die naar jouw Railway-database verwijst.

Stap 4 / 5

MySQL database toevoegen

Database toevoegen via Railway dashboard
  1. 1. In je Railway-project: klik op + New → Database → Add MySQL
  2. 2. Railway maakt een MySQL-instantie aan en koppelt hem aan je project
  3. 3. In je app-service → Variables zie je automatisch DATABASE_URL
  4. 4. Voer migraties uit via Railway shell of voeg een Procfile toe
Optioneel: Procfile voor automatische migraties bij deploy
web: php-fpm & nginx -g 'daemon off;'
release: php bin/console doctrine:migrations:migrate --no-interaction --env=prod

De release-fase wordt uitgevoerd vóór elke deployment, zodat migraties automatisch worden gedraaid.

🔁 Hetzelfde concept als les 5

Migraties uitvoeren in Railway is hetzelfde als op een VPS: doctrine:migrations:migrate --env=prod. Het verschil is dat Railway dit automatisch kan doen bij elke deploy.

Stap 5 / 5

VPS vs. Railway — wat leer je van elk?

VPS (les 2–7) Railway PaaS
Server beheer Jij — via SSH Railway automatisch
nginx config Handmatig schrijven Niet nodig
HTTPS Certbot zelf draaien Automatisch inbegrepen
Deploy git pull + script git push → klaar
Prijs €3–€10/maand $5–$20/maand
Leercurve Hoog — je leert veel Laag — "black box"
Andere PaaS-alternatieven
Render.com — gratis tier, goed voor experimenten
Fly.io — Docker-gebaseerd, meer controle
Platform.sh — Symfony-focused PaaS
🎯 Aanbeveling voor mbo

Leer de VPS-aanpak (les 2–7) voor begrip. Gebruik Railway voor eindprojecten als je snel iets wilt tonen. Op de werkvloer kom je beide tegen.

Kennischeck

🎉

Deployment-track voltooid!

Je hebt de volledige deployment-stack doorlopen: van VPS bestellen tot HTTPS, en als bonus Railway PaaS. Je kunt nu een Symfony-app live zetten op een echte server.

Les 8 afronden en track voltooien

Dit is de laatste les van de Deployment-track