mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
Merge pull request #459 from seppulcro/feat/add-roundcube-template
feat: add roundcube template
This commit is contained in:
commit
5867a27901
@ -31,8 +31,7 @@ The following templates are available:
|
||||
- **Wordpress**: Open Source Content Management System
|
||||
- **Open WebUI**: Free and Open Source ChatGPT Alternative
|
||||
- **Teable**: Open Source Airtable Alternative, Developer Friendly, No-code Database Built on Postgres
|
||||
|
||||
|
||||
- **Roundcube**: Free and open source webmail software for the masses, written in PHP, uses SMTP[^1].
|
||||
|
||||
## Create your own template
|
||||
|
||||
@ -41,3 +40,5 @@ We accept contributions to upload new templates to the dokploy repository.
|
||||
Make sure to follow the guidelines for creating a template:
|
||||
|
||||
[Steps to create your own template](https://github.com/Dokploy/dokploy/blob/canary/CONTRIBUTING.md#templates)
|
||||
|
||||
[^1]: Please note that if you're self-hosting a mail server you need port 25 to be open for SMTP (Mail Transmission Protocol that allows you to send and receive) to work properly. Some VPS providers like [Hetzner](https://docs.hetzner.com/cloud/servers/faq/#why-can-i-not-send-any-mails-from-my-server) block this port by default for new clients.
|
||||
|
@ -10,8 +10,10 @@ export function useMDXComponents(components: MDXComponents): MDXComponents {
|
||||
p: ({ children }) => (
|
||||
<p className="text-[#3E4342] dark:text-muted-foreground">{children}</p>
|
||||
),
|
||||
li: ({ children }) => (
|
||||
<li className="text-[#3E4342] dark:text-muted-foreground">{children}</li>
|
||||
li: ({ children, id }) => (
|
||||
<li {...{ id }} className="text-[#3E4342] dark:text-muted-foreground">
|
||||
{children}
|
||||
</li>
|
||||
),
|
||||
};
|
||||
}
|
||||
|
15
apps/dokploy/public/templates/roundcube.svg
Normal file
15
apps/dokploy/public/templates/roundcube.svg
Normal file
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="9.14 141.8 573.65 573.65">
|
||||
<style type="text/css">
|
||||
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#404F54;}
|
||||
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#E5E5E5;}
|
||||
.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#CCCCCC;}
|
||||
.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#37BEFF;}
|
||||
</style>
|
||||
<polygon class="st3" points="582.79,549.77 295.96,384.1 295.96,207.27 582.79,372.95 "/>
|
||||
<polygon class="st0" points="9.14,549.77 295.96,384.1 295.96,207.27 9.14,372.95 "/>
|
||||
<path class="st2" d="M295.96,141.8c109.56,0,198.41,88.85,198.41,198.41c0,109.56-88.85,198.41-198.41,198.41 c-109.56,0-198.41-88.85-198.41-198.41C97.55,230.65,186.4,141.8,295.96,141.8"/>
|
||||
<path class="st1" d="M295.96,141.8c109.6,0,198.48,88.85,198.48,198.41c0,109.56-88.88,198.41-198.48,198.41 c-62.91-42.34-88.94-127.64-88.94-198.3S233.05,184.22,295.96,141.8"/>
|
||||
<polygon class="st3" points="582.79,372.95 295.96,538.62 295.96,715.45 582.79,549.77 "/>
|
||||
<polygon class="st0" points="9.14,372.95 295.96,538.62 295.96,715.45 9.14,549.77 "/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.1 KiB |
17
apps/dokploy/templates/roundcube/docker-compose.yml
Normal file
17
apps/dokploy/templates/roundcube/docker-compose.yml
Normal file
@ -0,0 +1,17 @@
|
||||
services:
|
||||
roundcubemail:
|
||||
image: roundcube/roundcubemail:1.6.9-apache
|
||||
volumes:
|
||||
- ./www:/var/www/html
|
||||
- ./db/sqlite:/var/roundcube/db
|
||||
environment:
|
||||
- ROUNDCUBEMAIL_DB_TYPE=sqlite
|
||||
- ROUNDCUBEMAIL_SKIN=elastic
|
||||
- ROUNDCUBEMAIL_DEFAULT_HOST=${DEFAULT_HOST}
|
||||
- ROUNDCUBEMAIL_SMTP_SERVER=${SMTP_SERVER}
|
||||
networks:
|
||||
- dokploy-network
|
||||
|
||||
networks:
|
||||
dokploy-network:
|
||||
external: true
|
24
apps/dokploy/templates/roundcube/index.ts
Normal file
24
apps/dokploy/templates/roundcube/index.ts
Normal file
@ -0,0 +1,24 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const randomDomain = generateRandomDomain(schema);
|
||||
const envs = [
|
||||
"DEFAULT_HOST=tls://mail.example.com",
|
||||
"SMTP_SERVER=tls://mail.example.com",
|
||||
];
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: randomDomain,
|
||||
port: 80,
|
||||
serviceName: "roundcubemail",
|
||||
},
|
||||
];
|
||||
|
||||
return { envs, domains };
|
||||
}
|
@ -497,4 +497,19 @@ export const templates: TemplateData[] = [
|
||||
tags: ["self-hosted", "storage"],
|
||||
load: () => import("./gitea/index").then((m) => m.generate),
|
||||
},
|
||||
{
|
||||
id: "roundcube",
|
||||
name: "Roundcube",
|
||||
version: "1.6.9",
|
||||
description:
|
||||
"Free and open source webmail software for the masses, written in PHP.",
|
||||
logo: "roundcube.svg",
|
||||
links: {
|
||||
github: "https://github.com/roundcube/roundcubemail",
|
||||
website: "https://roundcube.net/",
|
||||
docs: "https://roundcube.net/about/",
|
||||
},
|
||||
tags: ["self-hosted", "email", "webmail"],
|
||||
load: () => import("./roundcube/index").then((m) => m.generate),
|
||||
},
|
||||
];
|
||||
|
Loading…
Reference in New Issue
Block a user