Add apricot-blossom: AI avatar platform for preserving memories

This commit is contained in:
2026-04-20 15:00:43 +00:00
parent d6b619fcfe
commit 7d07b38f0c
2 changed files with 91 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
{
"name": "Apricot Blossom",
"id": "apricot-blossom",
"available": true,
"port": 3000,
"exposable": true,
"dynamic_config": true,
"short_desc": "AI avatar platform for preserving memories and voices of loved ones",
"author": "alexz",
"source": "https://gits.alexzaw.dev/alexz/runtipi",
"website": "",
"tipi_version": 1,
"version": "1.0.0",
"categories": ["ai", "utilities"],
"supported_architectures": ["arm64", "amd64"],
"min_tipi_version": "4.0.0",
"created_at": 1745107200000,
"updated_at": 1745107200000,
"form_fields": [
{
"type": "password",
"label": "Anthropic API Key",
"hint": "Your Anthropic API key (starts with sk-ant-)",
"required": true,
"env_variable": "ANTHROPIC_API_KEY"
},
{
"type": "password",
"label": "ElevenLabs API Key",
"hint": "Your ElevenLabs API key for voice synthesis",
"required": true,
"env_variable": "ELEVENLABS_API_KEY"
},
{
"type": "text",
"label": "ElevenLabs Voice ID",
"hint": "The voice ID to use for speech synthesis",
"required": true,
"env_variable": "ELEVENLABS_VOICE_ID"
},
{
"type": "text",
"label": "Supabase URL",
"hint": "Your Supabase project URL (e.g. https://xxxx.supabase.co)",
"required": true,
"env_variable": "NEXT_PUBLIC_SUPABASE_URL"
},
{
"type": "password",
"label": "Supabase Anon Key",
"hint": "Your Supabase anonymous/public key",
"required": true,
"env_variable": "NEXT_PUBLIC_SUPABASE_ANON_KEY"
}
]
}

View File

@@ -0,0 +1,35 @@
{
"schemaVersion": 2,
"$schema": "https://schemas.runtipi.io/dynamic-compose.json",
"services": [
{
"name": "apricot-blossom",
"image": "apricot-blossom:latest",
"isMain": true,
"internalPort": 3000,
"environment": [
{ "key": "NODE_ENV", "value": "production" },
{ "key": "NEXT_TELEMETRY_DISABLED", "value": "1" },
{ "key": "TZ", "value": "${TZ}" },
{ "key": "ANTHROPIC_API_KEY", "value": "${ANTHROPIC_API_KEY}" },
{ "key": "ELEVENLABS_API_KEY", "value": "${ELEVENLABS_API_KEY}" },
{ "key": "ELEVENLABS_VOICE_ID", "value": "${ELEVENLABS_VOICE_ID}" },
{ "key": "NEXT_PUBLIC_SUPABASE_URL", "value": "${NEXT_PUBLIC_SUPABASE_URL}" },
{ "key": "NEXT_PUBLIC_SUPABASE_ANON_KEY", "value": "${NEXT_PUBLIC_SUPABASE_ANON_KEY}" }
],
"volumes": [
{
"hostPath": "${APP_DATA_DIR}/data",
"containerPath": "/app/data",
"readOnly": false
}
],
"healthCheck": {
"test": "wget --no-verbose --tries=1 --spider http://localhost:3000/ || exit 1",
"interval": "30s",
"timeout": "10s",
"retries": 3
}
}
]
}