A fullstack Reddit-style web app with PHP, Vue.js, Docker:
- Backend: Plain PHP with a JSON REST API using Composer
- Frontend: Vue.js single-page application
- Database: MariaDB using Propel ORM
- Environment: Dockerized for easy setup and development
Features
- User signup and login with username and password
- Create threads, posts, comments on posts
- Voting system for posts
A solid starting point for PHP developers to learn fullstack development with a clean backend-frontend split and containerized setup.
# create .env files from sample
cp ./app/.env.sample ./app/.env
cp ./client/.env.sample ./client/.env
docker compose up
# notice: you must wait until composer has installed all dependencies
# and migrations have been executed
# client runs on http://localhost:3031/- everything should be ready to go as long as ports 3031 and 3030 are availiables
- you can modify settings like ports and credentials in
docker-compose.yml(→ ports, db credentails)./app/.env( → jwt secret)./app/propel.json(→ db credentials)./client/.env(→ backend uri)client.nginx.conf(→ nginx config)php.nginx.conf(→ nginx config)
# if you have a fresh db exec into php docker container and run migrations
docker exec -it php-docker-starter-php-1 bash
cd /app
./vendor/bin/propel migration:up- sql dump can be found in
./docs/sqldump.sqlbut should't be necessary as migrations are runned automatically by docker compose
- composer inside docker
- composer-allow-superuser
- composer-cant-find-mongodb-extension-required-mongodb-extension
- composer-in-custom-docker-image
- develop php with docker
- docker image: mariadb
- docker image: nginx
- docker image: php
doctrinedoctrine- getcomposer
- liveregex
- mongodb
- php-docs
- php-jwt
- php:
error-log - php: datetime
- phpdotenv
- phptherightway
- propelorm: basic
- propelorm: schema
- propelorm
- Respect/Validation
- use empty()
- uuid
- wess22-musterloesung
- wireframes
- xdebug phpstorm
- xdebug vscode


