Thanks for checking out Financial Freedom! There are a lot of things in motion right now, and we plan to make it easier for contributions soon.
Since everything is so new, please explain your intentions on our community before going through the effort of making a PR: https://community.serversideup.net/t/requesting-features-for-financial-freedom/460
We encourage you to replicate this on your machine and tinker around with it. Here is how you can run it.
Important notes:
- We use Docker Overrides, which allow us to apply overrides on a per environment basis
- We have a tool called Spin which greatly improves the development experience
spin
is automatically installed via Composer for this project
You can download that here: https://www.docker.com/products/docker-desktop
If you do not add spin
as an alias, you will need to type this every time you fire up your development environment:
bash vendor/bin/spin
If you don't want to do that, you can [install spin
on your system[(https://serversideup.net/open-source/spin/)], or add this alias:
alias spin='[ -f node_modules/.bin/spin ] && bash node_modules/.bin/spin || bash vendor/bin/spin'
Add the above line to your ~/.bash_profile
or ~/.zshrc
file. After saving the changes, source
that file or simply close and re-open your terminal before continuing.
Pull the repo down into and folder of your choice.
cp .env.example .env
docker compose -f docker-compose.yml -f docker-compose.dev.yml run --no-deps --rm -e "S6_LOGGING=1" php composer install
(We need to run this big, ugly, and long command first because it will install spin
for us when it pulls down the composer dependencies. From here on out, we will be using spin
[and assuming you aliased the command]).
This might take a while because how slow mounted volumes are with Docker
spin run node yarn install
spin run php php artisan key:generate
spin up
Run the command below in a new terminal window while your containers are running.
Important note: On your first provision, you must wait for the database to provision the user. Look at the Docker compose output for "financial-freedom-mariadb-1". It will say something like [Entrypoint]: Creating user financial_freedom_database_user
spin exec php php artisan migrate
The server expects a URL of "https://financial-freedom.dev.test". For that to resolve, you can set your local machine hosts file.
127.0.0.1 financial-freedom.dev.test
We use InertiaJS as a frontend javascript library. If you are making changes, you will need to run the "dev" process within Node.
spin run node yarn dev
Once you have the application online, you can register an account at https://financial-freedom.dev.test/register