feat: add Kit landing page at kit.pivoine.art
Added kit-ui landing page as the main entry point for the toolkit: - Image: ghcr.io/valknarness/kit-ui:latest - URL: https://kit.pivoine.art - Provides links to Vert (file converter) and Paint (image editor) Changes: - Added landing service to kit/compose.yaml - Updated arty.yml with KIT_TRAEFIK_HOST and KIT_LANDING_IMAGE - Updated CLAUDE.md with landing page documentation - Updated README.md with landing page reference Toolkit structure: - Landing: kit.pivoine.art (main hub) - Vert: vert.kit.pivoine.art (file converter) - Paint: paint.kit.pivoine.art (image editor) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -251,10 +251,17 @@ Joplin Server note-taking and synchronization platform:
|
||||
5. Enter email and password created in step 1
|
||||
|
||||
### Kit (kit/compose.yaml)
|
||||
Unified toolkit combining file conversion and image editing using subdomain routing:
|
||||
Unified toolkit with landing page, file conversion, and image editing using subdomain routing:
|
||||
- **Landing**: `kit.pivoine.art` - Toolkit landing page
|
||||
- **Vert**: `vert.kit.pivoine.art` - Universal file format converter
|
||||
- **Paint**: `paint.kit.pivoine.art` - Web-based image editor
|
||||
|
||||
#### Landing Page (kit.pivoine.art)
|
||||
Kit toolkit landing page:
|
||||
- Main entry point for the toolkit
|
||||
- Links to Vert and Paint services
|
||||
- Clean, simple interface
|
||||
|
||||
#### Vert Service (vert.kit.pivoine.art)
|
||||
VERT universal file format converter:
|
||||
- WebAssembly-based file conversion (client-side processing)
|
||||
|
||||
@@ -54,7 +54,7 @@ The **Falcon** is a state-of-the-art containerized starship, powered by Docker's
|
||||
| **LINKS** | *Interstellar bookmark archive* | [links.pivoine.art](https://links.pivoine.art) |
|
||||
| **VAULT** | *Encrypted password vault* | [vault.pivoine.art](https://vault.pivoine.art) |
|
||||
| **JOPLIN** | *Note-taking server & sync hub* | [joplin.pivoine.art](https://joplin.pivoine.art) |
|
||||
| **KIT** | *Toolkit: file converter & image editor* | [kit.pivoine.art](https://kit.pivoine.art) |
|
||||
| **KIT** | *Toolkit hub with converter & editor* | [kit.pivoine.art](https://kit.pivoine.art) |
|
||||
| **JELLY** | *Media streaming server* | [jelly.pivoine.art](https://jelly.pivoine.art) |
|
||||
| **DROP** | *Peer-to-peer file sharing* | [drop.pivoine.art](https://drop.pivoine.art) |
|
||||
| **RESTIC** | *Automated backup vault system* | [restic.pivoine.art](https://restic.pivoine.art) |
|
||||
@@ -202,6 +202,10 @@ arty env/sync
|
||||
```bash
|
||||
# Access unified toolkit (subdomain routing)
|
||||
|
||||
# Landing Page
|
||||
# URL: https://kit.pivoine.art
|
||||
# Main entry point with links to all toolkit services
|
||||
|
||||
# File Converter (Vert)
|
||||
# URL: https://vert.kit.pivoine.art
|
||||
# Features:
|
||||
|
||||
4
arty.yml
4
arty.yml
@@ -110,9 +110,11 @@ envs:
|
||||
JOPLIN_TRAEFIK_HOST: joplin.pivoine.art
|
||||
JOPLIN_APP_PORT: 22300
|
||||
JOPLIN_DB_NAME: joplin
|
||||
# Kit (combines Vert and Paint)
|
||||
# Kit (combines Vert and Paint with landing page)
|
||||
KIT_TRAEFIK_ENABLED: true
|
||||
KIT_COMPOSE_PROJECT_NAME: kit
|
||||
KIT_TRAEFIK_HOST: kit.pivoine.art
|
||||
KIT_LANDING_IMAGE: ghcr.io/valknarness/kit-ui:latest
|
||||
KIT_VERT_IMAGE: ghcr.io/vert-sh/vert:latest
|
||||
KIT_VERT_TRAEFIK_HOST: vert.kit.pivoine.art
|
||||
KIT_PAINT_TRAEFIK_HOST: paint.kit.pivoine.art
|
||||
|
||||
@@ -1,4 +1,29 @@
|
||||
services:
|
||||
landing:
|
||||
image: ${KIT_LANDING_IMAGE:-ghcr.io/valknarness/kit-ui:latest}
|
||||
container_name: ${KIT_COMPOSE_PROJECT_NAME}_landing
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- compose_network
|
||||
labels:
|
||||
- 'traefik.enable=${KIT_TRAEFIK_ENABLED}'
|
||||
# HTTP to HTTPS redirect
|
||||
- 'traefik.http.middlewares.${KIT_COMPOSE_PROJECT_NAME}-landing-redirect-web-secure.redirectscheme.scheme=https'
|
||||
- 'traefik.http.routers.${KIT_COMPOSE_PROJECT_NAME}-landing-web.middlewares=${KIT_COMPOSE_PROJECT_NAME}-landing-redirect-web-secure'
|
||||
- 'traefik.http.routers.${KIT_COMPOSE_PROJECT_NAME}-landing-web.rule=Host(`${KIT_TRAEFIK_HOST}`)'
|
||||
- 'traefik.http.routers.${KIT_COMPOSE_PROJECT_NAME}-landing-web.entrypoints=web'
|
||||
# HTTPS router
|
||||
- 'traefik.http.routers.${KIT_COMPOSE_PROJECT_NAME}-landing-web-secure.rule=Host(`${KIT_TRAEFIK_HOST}`)'
|
||||
- 'traefik.http.routers.${KIT_COMPOSE_PROJECT_NAME}-landing-web-secure.tls.certresolver=resolver'
|
||||
- 'traefik.http.routers.${KIT_COMPOSE_PROJECT_NAME}-landing-web-secure.entrypoints=web-secure'
|
||||
- 'traefik.http.middlewares.${KIT_COMPOSE_PROJECT_NAME}-landing-compress.compress=true'
|
||||
- 'traefik.http.routers.${KIT_COMPOSE_PROJECT_NAME}-landing-web-secure.middlewares=${KIT_COMPOSE_PROJECT_NAME}-landing-compress,security-headers@file'
|
||||
# Service
|
||||
- 'traefik.http.services.${KIT_COMPOSE_PROJECT_NAME}-landing.loadbalancer.server.port=80'
|
||||
- 'traefik.docker.network=${NETWORK_NAME}'
|
||||
# Watchtower
|
||||
- 'com.centurylinklabs.watchtower.enable=${WATCHTOWER_LABEL_ENABLE}'
|
||||
|
||||
vert:
|
||||
image: ${KIT_VERT_IMAGE:-ghcr.io/vert-sh/vert:latest}
|
||||
container_name: ${KIT_COMPOSE_PROJECT_NAME}_vert
|
||||
|
||||
Reference in New Issue
Block a user