mirror of
https://github.com/steveiliop56/tinyauth.git
synced 2026-03-01 12:22:02 +00:00
86 lines
2.2 KiB
Markdown
86 lines
2.2 KiB
Markdown
# 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:
|
|
|
|
```sh
|
|
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:
|
|
|
|
```sh
|
|
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:
|
|
|
|
```sh
|
|
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:
|
|
|
|
```sh
|
|
go mod tidy
|
|
```
|
|
|
|
Frontend dependencies can be installed as follows:
|
|
|
|
```sh
|
|
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](https://sslip.io) can be used if a custom domain is
|
|
unavailable. For example, set the Tinyauth domain to `tinyauth.127.0.0.1.sslip.io` and the whoami domain to `whoami.127.0.0.1.sslip.io`.
|
|
|
|
Ensure the domains are correctly configured in the development Docker Compose file, then start the development environment:
|
|
|
|
```sh
|
|
make dev
|
|
```
|
|
|
|
In case you need to build the binary locally, you can run:
|
|
|
|
```sh
|
|
make binary
|
|
```
|
|
|
|
> [!NOTE]
|
|
> Copying the example `docker-compose.dev.yml` file to `docker-compose.test.yml`
|
|
is recommended to prevent accidental commits of sensitive information. The make recipe will automatically use `docker-compose.test.yml` as well as `docker-compose.test.prod.yml` (for the `make prod` recipe) if it exists.
|