# # GitHub CI

> This guide explains how to publish a forked version of Directus on NPM, Dockerhub and GHCR. You need to first create a fork

Using a fork in production is neither supported nor recommended.

Only do so if:

1. The feature you want to implement doesn't satisfy the 80/20 principle
2. There is a technical limitation preventing you from implementing it as an extension

Forks are not officially supported - please don't submit fork-specific bugs and questions on the official repo.

If you suspect a bug to not be part of your changes please confirm this by reproducing it with the official version before submitting an issue.

Minimum Requirements

If you want to publish your fork to hub.docker.com or NPM you need to have an account there.

Note: to publish to NPM you probably have to change all the package names. Publishing to NPM should almost never be necessary.

## # 1. Setup environment variables/secrets

## # General

Variable | Description | Example
--- | --- | ---
`GHCR_IMAGE` | Image name for GitHub Container Registry. Be sure to use the full URL. | `ghcr.io/directus/directus`
`DOCKERHUB_IMAGE` | Image name for hub.docker.com, no prefix. | `directus/directus`

Secret | Description | Example
--- | --- | ---
`NPM_TOKEN` | Your NPM token. Make sure to use the type "automation". | `12345678-...`
`DOCKERHUB_USERNAME` | Dockerhub Username | `directus`
`DOCKERHUB_PASSWORD` | Dockerhub Password | `hunter2`

## # 2. Create a release

    npm run release