diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..51a930b5d --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,122 @@ +# Contributing + +> "First, thanks for considering to contribute to my project. It really means a lot!" - [@andrasbacsai](https://github.com/andrasbacsai) + +You can ask for guidance anytime on our [Discord server](https://coollabs.io/discord) in the `#contribute` channel. + +## Code Contribution + +### 1) Setup your development environment + +Follow the steps below for your operating system: + +#### Windows + +1. Install Docker Desktop (or similar): + - Download and install [Docker Desktop for Windows](https://docs.docker.com/desktop/install/windows-install/) + - Follow the installation instructions provided on the Docker website + +2. Install Spin: + - Follow the instructions to install Spin on Windows from the [Spin documentation](https://serversideup.net/open-source/spin/docs/installation/install-windows) + +#### MacOS + +1. Install Orbstack or Docker Desktop (or similar): + - Orbstack (faster, lighter, better alternative to Docker Desktop) + - Download and install [Orbstack](https://docs.orbstack.dev/quick-start#installation) + - Docker Desktop: + - Download and install [Docker Desktop for Mac](https://docs.docker.com/desktop/install/mac-install/) + +2. Install Spin: + - Follow the instructions to install Spin on MacOS from the [Spin documentation](https://serversideup.net/open-source/spin/docs/installation/install-macos) + +#### Linux + +1. Install Docker Engine or Docker Desktop (or similar): + - Docker Engine (recommended): + - Follow the official [Docker Engine installation guide](https://docs.docker.com/engine/install/) for your Linux distribution + - Docker Desktop: + - If you want a GUI, you can use Docker Desktop [Docker Desktop for Linux](https://docs.docker.com/desktop/install/linux-install/) + +2. Install Spin: + Follow the instructions to install Spin on Linux from the [Spin documentation](https://serversideup.net/open-source/spin/docs/installation/install-linux) + +### 2) Verify Installation + +After installing Docker (or Orbstack) and Spin, verify the installation: + +1. Open a terminal or command prompt +2. Run the following commands: + ```bash + docker --version + spin --version + ``` + You should see version information for both Docker and Spin. + +### 3) Fork/Clone the Coolify Repository and Setup your Development Environment + +1. Fork/clone the [Coolify](https://github.com/coollabsio/coolify) repository to your GitHub account. + +2. Install a code editor on your machine (choose one): + + - Visual Studio Code: + - Windows/macOS/Linux: Download and install from [https://code.visualstudio.com/](https://code.visualstudio.com/) + + - Cursor (recommended): + - Windows/macOS/Linux: Download and install from [https://cursor.sh/](https://cursor.sh/) + + - Zed (very fast code editor): + - macOS/Linux: Download and install from [https://zed.dev/](https://zed.dev/) + - Windows: Not available yet + +3. Clone the Coolify Repository to your local machine + - Use `git clone` in the commandline + - Use GitHub Desktop (recommended): + - Download and install from [https://desktop.github.com/download/](https://desktop.github.com/download/) + +4. Open the cloned Coolify Repository in your choosen code editor. + +### 4) Set up Environment Variables + +1. Copy the `.env.development.example` file to your `.env` file. + +2. Set the database connection: + - For macOS users with Orbstack, update the `DB_HOST` variable to `postgres.coolify.orb.local`: + ``` + DB_HOST=postgres.coolify.orb.local + ``` + - For other systems, you may need to use the appropriate IP address or hostname of your PostgreSQL database. + +3. Review and adjust other environment variables as needed for your development setup. + +### 5) Start & Setup Coolify + +1. Open a terminal in the Coolify directory. + +2. Run the following command: + ``` + spin up + ``` + Note: You may see some errors, but don't worry; this is expected. + +3. If you encounter permission errors, especially on MacOS, use: + ``` + sudo spin up + ``` + +### 6) Start Development + +1. Access your Coolify instance: + - URL: `http://localhost:8000` + - Login: `test@example.com` + - Password: `password` + +2. Additional development tools: + - Laravel Horizon (scheduler): `http://localhost:8000/horizon` + Note: Only accessible when logged in as root user + - Mailpit (email catcher): `http://localhost:8025` + +### 7) Contributing a New Service + +To add a new service to Coolify, please refer to our documentation: +[Adding a New Service](https://coolify.io/docs/knowledge-base/add-a-service) diff --git a/CONTRIBUTION.md b/CONTRIBUTION.md deleted file mode 100644 index 52ab580d5..000000000 --- a/CONTRIBUTION.md +++ /dev/null @@ -1,36 +0,0 @@ -# Contributing - -> "First, thanks for considering to contribute to my project. - It really means a lot!" - [@andrasbacsai](https://github.com/andrasbacsai) - -You can ask for guidance anytime on our -[Discord server](https://coollabs.io/discord) in the `#contribution` channel. - -## Code Contribution - -### 1) Setup your development environment - -- You need to have Docker Engine (or equivalent) [installed](https://docs.docker.com/engine/install/) on your system. -- If you are using a Mac, I highly recommend installing [Orbsatck](https://orbstack.dev/download) as a much faster alternative and complete replacement to Docker Desktop. -- For better DX, install [Spin](https://serversideup.net/open-source/spin/docs). - -### 2) Set your environment variables - -- Copy [.env.development.example](./.env.development.example) to .env. -- Make sure to set the DB_HOST environment variable to the Postgres container IP or, if using Orbstack, use the container name (e.g., `postgres.coolify.orb.local`) to make sure that the DB Migrations work. - -## 3) Start & setup Coolify - -- Run `spin up` - You can notice that errors will be thrown. Don't worry. - - If you see weird permission errors, especially on Mac, run `sudo spin up` instead. - -## 4) Start development -You can login your Coolify instance at `localhost:8000` with `test@example.com` and `password`. - -Your horizon (Laravel scheduler): `localhost:8000/horizon` - Only reachable if you logged in with root user. - -Mails are caught by Mailpit: `localhost:8025` - - -## New Service Contribution -Check out the docs [here](https://coolify.io/docs/knowledge-base/add-a-service).