Setup
note
If there's a feature you're planning to work on, just give us a heads up in Discord so we can:
- Let you know if it's something we would accept into Wizarr
- Provide any guidance on how something like that would ideally be implemented
- Ensure nobody is already working on that issue/feature so we don't duplicate effort
Thanks for being interested in contributing 😊
Environment
Services
This environment includes the services below. Additional details are available in each service's README.
- Server -
/apps/wizarr-backend
- Web app -
/apps/wizarr-frontend
- Redis
- PostgreSQL development database with exposed port
5432
so you can use any database client to access it
All the services are packaged to run as with single Docker Compose command.
Server and web app
- Clone the project repo.
- Run
cp docker/example.env docker/.env
. - Edit
docker/.env
to provide values for the required variableSTORAGE_LOCATION
. - From the root directory, run:
Start development server
npm install
npm run build
npm run start
- Access the dev instance in your browser at http://localhost:3000
All the services will be started with hot-reloading enabled for a quick feedback loop.
You can access the web from http://your-machine-ip:3000
or http://localhost:3000
Notes:
- The "web" development container runs with uid 1000. If that uid does not have read/write permissions on the mounted volumes, you may encounter errors
- In case of rootless docker setup, you need to use root within the container, otherwise you will encounter read/write permission related errors, see comments in
docker/docker-compose.dev.yml
.
IDE setup
Lint / format extensions
Setting these in the IDE give a better developer experience, auto-formatting code on save, and providing instant feedback on lint issues.
VSCode
Install the recommended extensions.