2.2 KiB
Contributing
Contributing to Tinyauth is straightforward. Follow the steps below to set up a development server.
Requirements
- Bun
- Golang v1.24.0 or later
- Git
- Docker
- Make
Cloning the Repository
Start by cloning the repository:
git clone https://github.com/steveiliop56/tinyauth
cd tinyauth
Initialize Submodules
The project uses Git submodules for some dependencies, so you need to initialize them with:
git submodule init
git submodule update
Apply patches
Some of the dependencies must be patched in order to work correctly with the project, you can apply the patches by running:
git apply --directory paerser/ patches/nested_maps.diff
Installing Requirements
While development occurs within Docker, installing the requirements locally is recommended to avoid import errors. Install the Go dependencies:
go mod tidy
Frontend dependencies can be installed as follows:
cd frontend/
bun install
Create the .env file
Configuration requires an environment file. Copy the .env.example file to .env and adjust the environment variables as needed.
Development Workflow
The development workflow is designed to run entirely within Docker, ensuring compatibility with Traefik and eliminating the need for local builds. A recommended setup involves pointing a subdomain to the local machine:
*.dev.example.com -> 127.0.0.1
dev.example.com -> 127.0.0.1
Note
A domain from sslip.io can be used if a custom domain is unavailable. For example, set the Tinyauth domain to
tinyauth.127.0.0.1.sslip.ioand the whoami domain towhoami.127.0.0.1.sslip.io.
Ensure the domains are correctly configured in the development Docker Compose file, then start the development environment:
make dev
In case you need to build the binary locally, you can run:
make binary
Note
Copying the example
docker-compose.dev.ymlfile todocker-compose.test.ymlis recommended to prevent accidental commits of sensitive information. The make recipe will automatically usedocker-compose.test.ymlas well asdocker-compose.test.prod.yml(for themake prodrecipe) if it exists.