Split your bills with friends.
This is a Laravel application with the Laravel Breeze starter kit. Follow these steps to get the application up and running:
-
Clone the Repository
-
Install Composer Dependencies:
composer install
-
Copy the .env.example file:
cp .env.example .env
-
Generate an Application Key:
php artisan key:generate
-
Run Database Migrations:
php artisan migrate
- Choose yes to create a sqlite DB.
-
Install NPM Dependencies:
npm install
-
Run Vite Server:
npm run dev
-
Start the Development Server:
composer dev
- The application should now be accessible at
http://localhost:8000.
- The application should now be accessible at
To setup Splitify in Production we provide a docker-compose.yml. We choose to not provide SSL Termination inside the splitify container to give you more flexibility. Note that you need to bring your own Reverse Proxy to properly deploy this with SSL-Certificate.
-
Download
docker-compose.ymland example.env:wget -O docker-compose.yml https://raw.githubusercontent.com/404Simon/splitify/refs/heads/main/docker-compose.yml wget -O .env https://raw.githubusercontent.com/404Simon/splitify/refs/heads/main/.env.production.example
- edit the
.envfile and at least change theAPP_URLto your desired domain (e.g.https://splitify.example.com)
- edit the
Warning
The default configuration sets APP_ENV to production. This will not allow http requests. If you want to test it locally without your reverse proxy in place, change the APP_ENV to local.
-
Generate a secret key:
docker run --rm -v ./.env:/app/.env -w /app ghcr.io/404simon/splitify:latest php artisan key:generate
-
Create and migrate the DB:
touch database.sqlite docker run --rm -v ./database.sqlite:/app/database/database.sqlite ghcr.io/404simon/splitify:latest php artisan migrate --force
-
Start application:
docker compose up -d
If you didn't change the SERVER_NAME and port-mapping in the docker-compose.yml, the app should now be accessible on port 8080. If your reverse proxy of choice supports accessing your apps via docker networking you should use that and remove the port-mapping entirely.
.env- Environment configurationdatabase.sqlite- SQLite database file
Both files are mounted into the container and persist data.