feat: add LinknLink template with Docker Compose and metadata

- Introduced LinknLink, a link management application, with a comprehensive Docker Compose setup for both backend and frontend services.
- Added metadata in meta.json including description, logo, and relevant links.
- Created template.toml for environment variable configuration and service deployment.
This commit is contained in:
Ekrem Sönmezer
2026-01-15 15:06:53 +03:00
parent 1ead7d06a4
commit 201e76a2d8
4 changed files with 88 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
version: "3.8"
services:
backend:
image: ghcr.io/sonmezerekrem/linknlink/backend:latest
restart: unless-stopped
volumes:
- backend_data:/app/pb_data
working_dir: /app
environment:
- POCKETBASE_DOMAIN=${POCKETBASE_DOMAIN}
- POCKETBASE_ADMIN_EMAIL=${POCKETBASE_ADMIN_EMAIL}
- POCKETBASE_ADMIN_PASSWORD=${POCKETBASE_ADMIN_PASSWORD}
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8090/api/health"]
interval: 10s
timeout: 5s
retries: 5
expose:
- "8090"
frontend:
image: ghcr.io/sonmezerekrem/linknlink/frontend:latest
restart: unless-stopped
environment:
- NODE_ENV=production
- NODE_OPTIONS=--max-old-space-size=256
- POCKETBASE_URL=${POCKETBASE_URL}
- NEXT_PUBLIC_POCKETBASE_URL=${NEXT_PUBLIC_POCKETBASE_URL}
deploy:
resources:
limits:
memory: 512M
reservations:
memory: 256M
depends_on:
- backend
expose:
- "3000"
volumes:
backend_data:

View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="128" height="128" color="#ffffff" fill="none" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round">
<path d="M9.14339 10.691L9.35031 10.4841C11.329 8.50532 14.5372 8.50532 16.5159 10.4841C18.4947 12.4628 18.4947 15.671 16.5159 17.6497L13.6497 20.5159C11.671 22.4947 8.46279 22.4947 6.48405 20.5159C4.50532 18.5372 4.50532 15.329 6.48405 13.3503L6.9484 12.886" />
<path d="M17.0516 11.114L17.5159 10.6497C19.4947 8.67095 19.4947 5.46279 17.5159 3.48405C15.5372 1.50532 12.329 1.50532 10.3503 3.48405L7.48405 6.35031C5.50532 8.32904 5.50532 11.5372 7.48405 13.5159C9.46279 15.4947 12.671 15.4947 14.6497 13.5159L14.8566 13.309" />
</svg>

After

Width:  |  Height:  |  Size: 716 B

View File

@@ -0,0 +1,24 @@
[variables]
main_domain = "${domain}"
frontend_domain = "${main_domain}"
pocketbase_domain = "http://${main_domain}"
pocketbase_admin_email = "${email}"
pocketbase_admin_password = "${password:32}"
pocketbase_url = "http://backend:8090"
next_public_pocketbase_url = "http://backend:8090"
[config]
[[config.domains]]
serviceName = "frontend"
port = 3000
host = "${frontend_domain}"
env = [
"POCKETBASE_DOMAIN=${pocketbase_domain}",
"POCKETBASE_ADMIN_EMAIL=${pocketbase_admin_email}",
"POCKETBASE_ADMIN_PASSWORD=${pocketbase_admin_password}",
"NODE_ENV=production",
"NODE_OPTIONS=--max-old-space-size=256",
"POCKETBASE_URL=${pocketbase_url}",
"NEXT_PUBLIC_POCKETBASE_URL=${next_public_pocketbase_url}"
]

View File

@@ -3512,6 +3512,24 @@
"self-hosted"
]
},
{
"id": "linknlink",
"name": "LinknLink",
"version": "latest",
"description": "LinknLink is a link management application with PocketBase backend and Next.js frontend.",
"logo": "linknlink.svg",
"links": {
"github": "https://github.com/sonmezerekrem/linknlink",
"website": "https://github.com/sonmezerekrem/linknlink",
"docs": "https://github.com/sonmezerekrem/linknlink#readme"
},
"tags": [
"link-management",
"pocketbase",
"nextjs",
"self-hosted"
]
},
{
"id": "linkstack",
"name": "LinkStack",