Skip to content

Commit

Permalink
Merge pull request #1226 from nktnet1/shlink-template
Browse files Browse the repository at this point in the history
feat(template): added shlink, a url shortener service
  • Loading branch information
Siumauricio authored Jan 27, 2025
2 parents d43cd52 + 55fae23 commit d37bde0
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 0 deletions.
8 changes: 8 additions & 0 deletions apps/dokploy/public/templates/shlink.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
29 changes: 29 additions & 0 deletions apps/dokploy/templates/shlink/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
services:
shlink:
image: shlinkio/shlink:stable
environment:
- INITIAL_API_KEY=${INITIAL_API_KEY}
- DEFAULT_DOMAIN=${DEFAULT_DOMAIN}
# Note: you should also update SHLINK_SERVER_URL in the shlink-web service.
- IS_HTTPS_ENABLED=false
volumes:
- shlink-data:/etc/shlink/data
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:8080/rest/v3/health"]
interval: 30s
timeout: 10s
retries: 3
shlink-web:
image: shlinkio/shlink-web-client
environment:
- SHLINK_SERVER_API_KEY=${INITIAL_API_KEY}
# Note: if you've set IS_HTTPS_ENABLED=true, change http to https.
- SHLINK_SERVER_URL=http://${DEFAULT_DOMAIN}
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:8080"]
interval: 30s
timeout: 10s
retries: 3

volumes:
shlink-data:
35 changes: 35 additions & 0 deletions apps/dokploy/templates/shlink/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import {
type DomainSchema,
type Schema,
type Template,
generatePassword,
generateRandomDomain,
} from "../utils";

export function generate(schema: Schema): Template {
const defaultDomain = generateRandomDomain(schema);
const initialApiKey = generatePassword(30);

const domains: DomainSchema[] = [
{
host: `web-${defaultDomain}`,
port: 8080,
serviceName: "shlink-web",
},
{
host: defaultDomain,
port: 8080,
serviceName: "shlink",
},
];

const envs = [
`INITIAL_API_KEY=${initialApiKey}`,
`DEFAULT_DOMAIN=${defaultDomain}`,
];

return {
envs,
domains,
};
}
15 changes: 15 additions & 0 deletions apps/dokploy/templates/templates.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1423,4 +1423,19 @@ export const templates: TemplateData[] = [
tags: ["q&a", "self-hosted"],
load: () => import("./answer/index").then((m) => m.generate),
},
{
id: "shlink",
name: "Shlink",
version: "v1.4.1",
description:
"URL shortener that can be used to serve shortened URLs under your own domain.",
logo: "shlink.svg",
links: {
github: "https://github.com/shlinkio/shlink",
website: "https://shlink.io",
docs: "https://shlink.io/documentation",
},
tags: ["sharing", "shortener", "url"],
load: () => import("./shlink/index").then((m) => m.generate),
},
];

0 comments on commit d37bde0

Please sign in to comment.