Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat: New notification docs and v4.0.0-beta.377 release related docs #100

Merged
merged 15 commits into from
Dec 13, 2024
Merged
2 changes: 2 additions & 0 deletions astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -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" },
Expand Down Expand Up @@ -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" },
Expand Down
2 changes: 1 addition & 1 deletion openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Binary file not shown.
5 changes: 5 additions & 0 deletions src/assets/images/services/fileflows.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/images/services/nexus0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/images/services/nexus1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/images/services/nexus2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 4 additions & 4 deletions src/content/docs/knowledge-base/docker/custom-commands.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand All @@ -33,6 +32,7 @@ For deploying your resources, you can add custom options to the final docker com
- `--init`
- `--ulimit`
- `--privileged`
- `--gpus`

## Usage

Expand Down
233 changes: 204 additions & 29 deletions src/content/docs/knowledge-base/notifications.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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.
<Aside type="note">
Email notifications can be configured using either SMTP or Resend.
</Aside>

<Steps>
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
</Steps>

### 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.
<Steps>
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

<Aside type="tip">
After copying your bot token, delete the message containing it from Telegram. Store the token securely as anyone with access to it can control your bot.
</Aside>

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`
</Steps>

<Aside type="note">
Common issues:
- Make sure the bot is an admin in the group/channel
- Include the minus sign (-) in the chat ID if present
- If `getUpdates` returns an empty response, send another message and try again
- if you can not acces `getUpdates` make sure you have the correct bot token and you have replace the `{YOUR_BOT_TOKEN}` with your actual bot token (replace everything including the quotes)
</Aside>

### 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).
<Steps>
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`
</Steps>

<Aside type="tip">
See [Discord's Webhook Guide](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks) for more detailed setup instructions.
</Aside>

### Slack

<Steps>
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`
</Steps>

### Pushover (Push Notifications)

<Steps>
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`
</Steps>

<Aside type="tip">
Pushover allows you to receive notifications on multiple devices including iOS, Android, and desktop.
</Aside>

## 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

<Aside type="tip" title="Multiple Channels">
You can configure different events for each notification channel. For example, you can send deployment failure notifications to Email and successes to Slack.
</Aside>
36 changes: 36 additions & 0 deletions src/content/docs/services/fileflows.mdx
Original file line number Diff line number Diff line change
@@ -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)
40 changes: 40 additions & 0 deletions src/content/docs/services/nexus.mdx
Original file line number Diff line number Diff line change
@@ -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';

<Badge text="One-click setup." variant="note" size="large" />

![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)