feat: Add numerous new blueprint templates for various applications

This commit is contained in:
Mauricio Siu
2025-03-09 19:05:57 -06:00
parent eed6aebb85
commit fbbb4f46f3
216 changed files with 13001 additions and 44 deletions

View File

@@ -0,0 +1,41 @@
version: '3.7'
services:
yourls-app:
image: yourls:1.9.2
environment:
YOURLS_SITE: https://${YOURLS_HOST}
YOURLS_USER: ${YOURLS_ADMIN_USER}
YOURLS_PASS: ${YOURLS_ADMIN_PASSWORD}
YOURLS_DB_HOST: yourls-mysql
YOURLS_DB_USER: yourls
YOURLS_DB_PASS: ${MYSQL_PASSWORD}
YOURLS_DB_NAME: yourls
volumes:
- yourls-data:/var/www/html
depends_on:
yourls-mysql:
condition: service_healthy
restart: always
yourls-mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: yourls
MYSQL_USER: yourls
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
volumes:
- yourls-mysql-data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u$$MYSQL_USER", "-p$$MYSQL_PASSWORD"]
interval: 10s
timeout: 5s
retries: 5
restart: always
volumes:
yourls-data:
yourls-mysql-data:

View File

@@ -0,0 +1,35 @@
import {
type DomainSchema,
type Schema,
type Template,
generatePassword,
generateRandomDomain,
} from "../utils";
export function generate(schema: Schema): Template {
const mainDomain = generateRandomDomain(schema);
const mysqlPassword = generatePassword();
const mysqlRootPassword = generatePassword();
const adminPassword = generatePassword();
const domains: DomainSchema[] = [
{
host: mainDomain,
port: 80,
serviceName: "yourls-app",
},
];
const envs = [
`YOURLS_HOST=${mainDomain}`,
"YOURLS_ADMIN_USER=admin",
`YOURLS_ADMIN_PASSWORD=${adminPassword}`,
`MYSQL_PASSWORD=${mysqlPassword}`,
`MYSQL_ROOT_PASSWORD=${mysqlRootPassword}`,
];
return {
domains,
envs,
};
}