4.1 KiB
head
| head | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Contribution
First, thanks for considering to contribute to my project. It really means a lot! :)
You can ask for guidance anytime on our Discord server in the #contribution channel.
Setup your development environment
Github codespaces
If you have github codespaces enabled then you can just create a codespace and run pnpm dev to run your the dev environment. All the required dependencies and packages has been configured for you already.
Gitpod
If you have a Gitpod, you can just create a workspace from this repository, run pnpm install && pnpm db:push && pnpm db:seed and then pnpm dev. All the required dependencies and packages has been configured for you already.
Local Machine
At the moment, Coolify
doesn't support Windows. You must useLinuxorMacOSor consider using Gitpod or Github Codespaces.
-
Due to the lock file, this repository is best with pnpm. I recommend you try and use
pnpmbecause it is cool and efficient! -
You need to have Docker Engine installed locally.
-
You need to have Docker Compose Plugin installed locally.
-
You need to have GIT LFS Support installed locally.
Optional:
- To test Heroku buildpacks, you need pack binary installed locally.
Inside a Docker container
WIP
Setup Coolify
-
Copy
apps/api/.env.templatetoapps/api/.env.templateand set theCOOLIFY_APP_IDenvironment variable to something cool. -
pnpm installto install dependencies. -
pnpm db:pushto o create a local SQlite database.This will apply all migrations at
db/dev.db. -
pnpm db:seedseed the database. -
pnpm devstart coding.
Technical skills required
- Languages: Node.js / Javascript / Typescript
- Framework JS/TS: SvelteKit & Fastify
- Database ORM: Prisma.io
- Docker Engine API
Add a new service
Which service is eligable to add to Coolify?
The following statements needs to be true:
- Self-hostable
- Open-source
- Maintained (I do not want to add software full of bugs)
Create Prisma / Database schema for the new service.
All data that needs to be persist for a service should be saved to the database in cleartext or encrypted.
very password/api key/passphrase needs to be encrypted. If you are not sure, whether it should be encrypted or not, just encrypt it.
Update Prisma schema in src/api/prisma/schema.prisma.
- Add new model with the new service name.
- Make a relationship with
Servicemodel. - In the
Servicemodel, the name of the new field should be with low-capital. - If the service needs a database, define a
publicPortfield to be able to make it's database public, example field name in case of PostgreSQL:postgresqlPublicPort. It should be a optional field.