Skip to content

Commit

Permalink
Merge pull request #100 from coollabsio/next
Browse files Browse the repository at this point in the history
Feat: New notification docs and v4.0.0-beta.377 release related docs
  • Loading branch information
peaklabs-dev authored Dec 13, 2024
2 parents 15930fd + ff21c8a commit bc0cd0b
Show file tree
Hide file tree
Showing 11 changed files with 292 additions and 34 deletions.
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)

0 comments on commit bc0cd0b

Please sign in to comment.