# futureporn.net     [](https://www.jetify.com/devbox/docs/contributor-quickstart/) Source Code for https://futureporn.net See ./ARCHITECTURE.md for an overview of the infrastructure components. ## Getting Started The main gist is as follows. 1. install [docker](https://docs.docker.com/engine/install) `wget -O- get.docker.com | bash` 1. Install [devbox](https://www.jetify.com/devbox/docs/installing_devbox/) `curl -fsSL https://get.jetify.com/devbox | bash` 2. Install development environment & packages using devbox. devbox install 3. Run database and other accessories with `docker compose up --watch` 4. In another terminal, run the phoenix "bright" app with `devbox run bright:dev` 4. Visit http://localhost:4000 If all went well, editing source code will automatically affect the website running in your browser. ## backup/restore dev database @see https://stackoverflow.com/a/29913462/1004931 ### backup Use devbox helper script devbox run backup ### restore cat ./backups/your-backup.sql | docker exec -i postgres_db psql -U postgres ## testing there is some undesirable behavior when running tests because nektos/act mimicks github actions. we are banned from github so we aren't using that. instead, we use gitea act_runner. github actions Job runner runs on docker 'host' network. gitea act_runner runs on a custom named bridge network. e.g. `GITEA-ACTIONS-TASK-974_WORKFLOW-ci_JOB-Tests-Checks-test_phoenix-network` confusing, right? It totally is! when we are working with gitea act_runner, we can use dns names, e.g. test-db. when we are working with nektos/act, we must use the IP address of the service container. WTF there must be a better way