Getting Started¶
Setting up a local development environment for contributing to MeetAgain.
For production deployment, see Hosting.
Prerequisites¶
- Docker and Docker Compose (v2)
- just command runner (
cargo install justor via your package manager) - A local hostname entry for
meetagain.local(see Local Hostname Setup)
Local Hostname Setup¶
Add the following to /etc/hosts:
The development server runs on HTTPS with a self-signed certificate. Accept the certificate warning in your browser on first visit.
Start in 3 commands¶
git clone https://github.com/xuedi/meetAgain.git && cd meetAgain
just devModeFixtures
# Open https://meetagain.local
just devModeFixtures resets the database, loads sample fixtures (events, users, CMS pages),
and starts all Docker containers. Default admin credentials: admin@example.org / 1234
Dev services¶
Once started, the following services are available:
| Service | Container | Address | Purpose |
|---|---|---|---|
| Application | ma-php (FrankenPHP + Caddy) |
https://meetagain.local | The app |
| Database | ma-db (MariaDB 12) |
localhost:3306 | Relational DB |
ma-mailhog (MailHog) |
http://localhost:8025 | Catches all outgoing email | |
| Cache | ma-valkey (Valkey) |
internal | Redis-compatible cache |
MailHog captures every outgoing email — no real mail is sent in dev mode.
Reset variants¶
just devModeFixtures # Full environment with fixture data
just devModeMinimal # Install fixtures only (useful for testing imports)
just devModeFixtures multisite # Full environment with the multisite plugin enabled
Essential commands¶
just # List all commands
just start # Start containers
just stop # Stop containers
just app <cmd> # Run a Symfony console command
just appMigrate # Run database migrations
just appClearCache # Clear caches
just testUnit # Run unit tests
just test # Run all tests and checks
just fixMago # Auto-format code (run before committing)