diff --git a/astro.config.mjs b/astro.config.mjs index 1ef0634..556fcd7 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -342,6 +342,7 @@ export default defineConfig({ { label: "Emby Stat", link: "/services/emby-stat" }, { label: "Fider", link: "/services/fider" }, { label: "Filebrowser", link: "/services/filebrowser" }, + { label: "FileFlows", link: "/services/fileflows" }, { label: "Firefly III", link: "/services/firefly-iii" }, { label: "Formbricks", link: "/services/formbricks" }, { label: "Forgejo", link: "/services/forgejo" }, @@ -378,6 +379,7 @@ export default defineConfig({ { label: "Mosquitto", link: "/services/mosquitto" }, { label: "N8N", link: "/services/n8n" }, { label: "Nextcloud", link: "/services/nextcloud" }, + { label: "Nexus", link: "/services/nexus" }, { label: "Nitropage", link: "/services/nitropage" }, { label: "NocoDB", link: "/services/nocodb" }, { label: "Odoo", link: "/services/odoo" }, diff --git a/openapi.yaml b/openapi.yaml index 2a22c73..8627c6a 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -3871,7 +3871,7 @@ paths: type: description: 'The one-click service type' type: string - enum: [activepieces, appsmith, appwrite, authentik, babybuddy, budge, changedetection, chatwoot, classicpress-with-mariadb, classicpress-with-mysql, classicpress-without-database, cloudflared, code-server, dashboard, directus, directus-with-postgresql, docker-registry, docuseal, docuseal-with-postgres, dokuwiki, duplicati, emby, embystat, fider, filebrowser, firefly, formbricks, ghost, gitea, gitea-with-mariadb, gitea-with-mysql, gitea-with-postgresql, glance, glances, glitchtip, grafana, grafana-with-postgresql, grocy, heimdall, homepage, jellyfin, kuzzle, listmonk, logto, mediawiki, meilisearch, metabase, metube, minio, moodle, n8n, n8n-with-postgresql, next-image-transformation, nextcloud, nocodb, odoo, openblocks, pairdrop, penpot, phpmyadmin, pocketbase, posthog, reactive-resume, rocketchat, shlink, slash, snapdrop, statusnook, stirling-pdf, supabase, syncthing, tolgee, trigger, trigger-with-external-database, twenty, umami, unleash-with-postgresql, unleash-without-database, uptime-kuma, vaultwarden, vikunja, weblate, whoogle, wordpress-with-mariadb, wordpress-with-mysql, wordpress-without-database] + enum: [activepieces, appsmith, appwrite, authentik, babybuddy, budge, changedetection, chatwoot, classicpress-with-mariadb, classicpress-with-mysql, classicpress-without-database, cloudflared, code-server, dashboard, directus, directus-with-postgresql, docker-registry, docuseal, docuseal-with-postgres, dokuwiki, duplicati, emby, embystat, fider, filebrowser, firefly, formbricks, ghost, gitea, gitea-with-mariadb, gitea-with-mysql, gitea-with-postgresql, glance, glances, glitchtip, grafana, grafana-with-postgresql, grocy, heimdall, homepage, jellyfin, kuzzle, listmonk, logto, mediawiki, meilisearch, metabase, metube, minio, moodle, n8n, n8n-with-postgresql, next-image-transformation, nextcloud, nexus, nocodb, odoo, openblocks, pairdrop, penpot, phpmyadmin, pocketbase, posthog, reactive-resume, rocketchat, shlink, slash, snapdrop, statusnook, stirling-pdf, supabase, syncthing, tolgee, trigger, trigger-with-external-database, twenty, umami, unleash-with-postgresql, unleash-without-database, uptime-kuma, vaultwarden, vikunja, weblate, whoogle, wordpress-with-mariadb, wordpress-with-mysql, wordpress-without-database] name: type: string maxLength: 255 diff --git a/src/assets/images/screenshots/fileflows_screenshot.webp b/src/assets/images/screenshots/fileflows_screenshot.webp new file mode 100644 index 0000000..95c590f Binary files /dev/null and b/src/assets/images/screenshots/fileflows_screenshot.webp differ diff --git a/src/assets/images/services/fileflows.svg b/src/assets/images/services/fileflows.svg new file mode 100644 index 0000000..ee37e9b --- /dev/null +++ b/src/assets/images/services/fileflows.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/assets/images/services/nexus0.png b/src/assets/images/services/nexus0.png new file mode 100644 index 0000000..3756744 Binary files /dev/null and b/src/assets/images/services/nexus0.png differ diff --git a/src/assets/images/services/nexus1.png b/src/assets/images/services/nexus1.png new file mode 100644 index 0000000..05a43ae Binary files /dev/null and b/src/assets/images/services/nexus1.png differ diff --git a/src/assets/images/services/nexus2.png b/src/assets/images/services/nexus2.png new file mode 100644 index 0000000..74c86e8 Binary files /dev/null and b/src/assets/images/services/nexus2.png differ diff --git a/src/content/docs/knowledge-base/docker/custom-commands.mdx b/src/content/docs/knowledge-base/docker/custom-commands.mdx index a6c4e4b..9fb1ca8 100644 --- a/src/content/docs/knowledge-base/docker/custom-commands.mdx +++ b/src/content/docs/knowledge-base/docker/custom-commands.mdx @@ -3,13 +3,12 @@ title: "Custom Commands" head: - tag: "meta" attrs: - property: "og:title" - content: "How to use custom commands for your Docker deployments with Coolify." + property: "og:title" + content: "How to use custom commands for your Docker deployments with Coolify." description: "A guide on how to use custom commands for your Docker deployments with Coolify." --- -import { Aside, Steps } from '@astrojs/starlight/components'; - +import { Aside, Steps } from "@astrojs/starlight/components"; For deploying your resources, you can add custom options to the final docker command, which is used to run your container. @@ -33,6 +32,7 @@ For deploying your resources, you can add custom options to the final docker com - `--init` - `--ulimit` - `--privileged` +- `--gpus` ## Usage diff --git a/src/content/docs/knowledge-base/notifications.mdx b/src/content/docs/knowledge-base/notifications.mdx index 20d3d5a..c5617a0 100644 --- a/src/content/docs/knowledge-base/notifications.mdx +++ b/src/content/docs/knowledge-base/notifications.mdx @@ -5,45 +5,220 @@ head: attrs: property: "og:title" content: "How the built-in notification system works in Coolify" -description: "A guide on how the built-in notification system works in Coolify" +description: "A comprehensive guide on setting up and using notifications in Coolify" +tableOfContents: + minHeadingLevel: 2 + maxHeadingLevel: 4 --- -## Notifications +import { Steps, Aside } from '@astrojs/starlight/components'; -You can set up several types of notifications. Each team could have different notification settings. +Coolify provides a robust notification system that supports multiple channels. You can configure notifications in the **Notifications** tab of your Coolify dashboard. -### Email - -Email notifications requires you to set up an SMTP server or supported service (Resend). - -#### System Wide (transactional) +## Notification Providers -If you self-host Coolify, you can set up a system-wide SMTP server in the **Settings** menu. +Below are guides for setting up supported notification providers in Coolify. -#### Team Wide - -To setup notifications, go to the **Team** tab and click on **Notifications** and then **Email**. +### Email -If you have a System Wide Email settings, you can enable to use it for the team. Otherwise, you can set up a custom SMTP server/Resend for the team. + + + +1. Navigate to **Notifications** → **Email** + +2. Choose your email provider: + - Use system wide (transactional) email settings (if you self-host Coolify, you can set this up in the Instance Settings - If you use Coolify Cloud, this is set up for you) + - SMTP + - Resend + +3. Configure your chosen provider: + + #### System-Wide Email Settings + - Enable the `Use system wide (transactional) email settings` checkbox + + #### SMTP Configuration + - Fill in the following fields: + - `From Name` - Display name for the sender + - `From Address` - Email address notifications will come from + - `Host` - SMTP server hostname (e.g., smtp.mail.com) + - `Port` - SMTP port (typically 587 or 465) + - `Username` - SMTP authentication username + - `Password` - SMTP authentication password + - `Encryption` - TLS, SSL, or None (None is not recommended as it is highly insecure) + - `Timeout` - Connection timeout in seconds + - Enable the `SMTP` checkbox + + #### Resend Configuration + - Enter your `Resend API Key` + - Enable the `Resend` checkbox + +4. Click `Send Test Email` to verify your setup + ### Telegram -You need to create a bot token on Telegram. You can do that by talking to the [BotFather](https://t.me/botfather). - -More information on how to create a bot token can be found [here](https://core.telegram.org/bots/tutorial). - -> You can add your new bot to a group chat, so you can share these notifications with your team. + +1. Initial Setup (Setup only possible on phone) + - Create a Telegram account using your phone number + - Open the Telegram app on your phone + - Go to **Settings** → **Profile** + - Set up a username (recommended) + +2. Create Your Bot + - Message [@BotFather](https://t.me/botfather) + - Send the `/newbot` command + - Follow BotFather's instructions to create your bot + - Copy the `Bot Token` when displayed + + + +3. Create and add your bot to a group + - Create a new group in Telegram + - Add your bot to the group (you can add it by using the bot name chosen while creating the bot) + +4. Make the bot an admin of the group + - Click on the group name + - Locate the members list + - Click on the bot name + - Click on **Add to group or channel** + - Choose the group + - Enable the `admin` toggle + - Click on **Add bot as admin** + +5. Enable Topics (Optional, Setup only possible on phone) + - Open the group on your phone + - Tap the group name + - Tap the pencil icon (edit) + - Find and enable **Topics** (this enables threads for the group) + - You can now create topics using the 3-dot menu in the group (also works on desktop) + +6. Get Required IDs + - Visit: `https://api.telegram.org/bot{YOUR_BOT_TOKEN}/getUpdates` (Replace `{YOUR_BOT_TOKEN}` with your actual bot token) + - Send a test message in your group or thread/topic + - Find these values in the response: + - `Chat ID`: Look for `"chat": {"id": -100XXXXXXXXX,` (for groups/channels, the chat ID usually starts with `-100`) + - `Thread/Topic ID` (if using threads): Look for `"message_thread_id":XXXXX,` + +7. Configure Coolify + - Go to **Notifications** → **Telegram** + - Enter your `bot token` (from step 2) + - Enter the `chat ID` (include the `-` minus sign if present) + - Enter the `thread/topic ID` (only if you are using threads) + - Save settings + - Enable the Telegram channel + - Send a `Test notification` + + + ### Discord -You only need to add a Discord webhook endpoint to receive notifications. - -More information on how to create a webhook can be found [here](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks). - -### Events - -You can subscribe to the following events: - -- Container Status Changed (Stopped, Started, Restarted). -- Application Deployments (Finished, Failed). -- Backup Status (Finished, Failed). + +1. Create a Discord Server and Channel + - Create a new server or use an existing one + - Create a new text channel for Coolify notifications + +2. Create a webhook + - Open Discord server settings + - Go to **Integrations** → **Webhooks** + - Click **New Webhook** + - Choose the channel you created for Coolify notifications + - Copy the `webhook URL` + +3. Configure in Coolify: + - Go to **Notifications** → **Discord** + - Paste the `webhook URL` in the Webhook URL field + - Save the settings + - Enable the Discord channel + - Send a `Test notification` + + + + +### Slack + + +1. Create a Slack App + - Visit [Slack API](https://api.slack.com/apps) + - Click **Create New App** → **From scratch** + - Choose your workspace + +2. Enable webhooks: + - Go to **Incoming Webhooks** + - Toggle **Activate Incoming Webhooks** + - Click **Add New Webhook to Workspace** + - Choose a channel for Coolify notifications + - Copy the `webhook URL` + +3. Configure in Coolify: + - Go to **Notifications** → **Slack** + - Paste the `webhook URL` in the Webhook URL field + - Save the settings + - Enable the Slack channel + - Send a `Test notification` + + +### Pushover (Push Notifications) + + +1. Get User Key + - Log in or sign up at [Pushover](https://pushover.net) + - Copy your `User Key` from the top right of the page + +2. Create an Application + - Visit [Create Application](https://pushover.net/apps/build) + - Fill in application details + - Create the application + - Copy the `API Token/Key` from the top left of the page + +3. Configure in Coolify: + - Go to **Notifications** → **Pushover** + - Enter your `User Key` (from step 1) + - Enter the `API Key` from your created application (from step 2) + - Save the settings + - Enable the Pushover channel + - Send a `Test notification` + + + + +## Notification Events + +You can configure which events trigger notifications in your notification settings: + +### Deployments + - Deployment Success + - Deployment Failure + - Container Status changes + +### Backups + - Backup Success + - Backup Failure + +### Scheduled Tasks + - Task Success + - Task Failure + +### Server Events + - Docker Cleanup Success + - Docker Cleanup Failure + - High Disk Usage Alerts + - Server Status Updates + + diff --git a/src/content/docs/services/fileflows.mdx b/src/content/docs/services/fileflows.mdx new file mode 100644 index 0000000..ca4a315 --- /dev/null +++ b/src/content/docs/services/fileflows.mdx @@ -0,0 +1,36 @@ +--- +title: FileFlows +head: + - tag: "meta" + attrs: + property: "og:title" + content: "How to host FileFlows with Coolify" +description: "Here you can find the documentation for hosting FileFlows with Coolify." +--- + +![FileFlows](../../../assets/images/services/fileflows.svg) + +## What is FileFlows? + +Are you tired of manually managing your files? Meet FileFlows — the ultimate solution for automatic file processing! + +FileFlows lets you monitor and process any file type with custom flows. Videos, audio, images, archives, comics, eBooks—you name it! + +## Installation + +1. Create the service within Coolify. +2. If your device supports it, enable hardware transcoding by uncommenting this section in the compose file: + +```yaml +#devices: +# - "/dev/dri:/dev/dri" +``` + +## Screenshots + +![FileFlows](/src/assets/images/screenshots/fileflows_screenshot.webp) + +## Links + +- [The official website ›](https://fileflows.com/) +- [Doc ›](https://fileflows.com/docs) diff --git a/src/content/docs/services/nexus.mdx b/src/content/docs/services/nexus.mdx new file mode 100644 index 0000000..8cfa964 --- /dev/null +++ b/src/content/docs/services/nexus.mdx @@ -0,0 +1,40 @@ +--- +title: Sonatype Nexus +head: + - tag: "meta" + attrs: + property: "og:title" + content: How to host Sonatype Nexus with Coolify +description: "Here you can find the documentation for hosting Sonatype Nexus with Coolify." +--- + +import { Badge } from '@astrojs/starlight/components'; + + + +![Nexus](../../../assets/images/services/nexus0.png) + +## What is Sonatype Nexus + +Sonatype Nexus is a repository manager that allows you to store, manage, and distribute your software artifacts. +The official container is for x86_64 architecture. The arm64 version is community maintained and synced with the official repository. + +## Setup + +- The setup relies on starting as default user "admin" with password "admin123". +- Once the service is running, login with the default credentials and change the password. +- After that, delete `NEXUS_SECURITY_RANDOMPASSWORD=false` line from the compose file and restart the service to apply the changes. + +Minimum requirements: +- 4 vCPU +- 3 GB RAM + +## Screenshots + +![Repository](../../../assets/images/services/nexus1.png) +![System](../../../assets/images/services/nexus2.png) + +## Links + +- [The official website ›](https://help.sonatype.com/en/sonatype-nexus-repository.html?utm_source=coolify.io) +- [GitHub ›](https://github.com/sonatype/docker-nexus3?utm_source=coolify.io)