feat: add initial project setup and configuration files

This commit is contained in:
SansGuidon 2025-05-28 21:28:22 +02:00
commit a808c021ba
14 changed files with 178 additions and 0 deletions

2
CHANGELOG.md Normal file
View File

@ -0,0 +1,2 @@
# Changelog

26
CloudronManifest.json Normal file
View File

@ -0,0 +1,26 @@
{
"id": "be.zoemp.cinekids",
"title": "Cine Kids",
"author": "Morgan",
"description": "file://DESCRIPTION.md",
"changelog": "file://CHANGELOG.md",
"tagline": "Ciné-agrégateur multi-source pour enfants.",
"version": "1.0.0",
"healthCheckPath": "/search",
"httpPort": 3000,
"addons": {
"localstorage": {}
},
"manifestVersion": 2,
"website": "https://zoemp.be/my-custom-app",
"contactEmail": "morgan@zoemp.be",
"icon": "file://logo.png",
"tags": [
"cinema",
"children",
"cloudron"
],
"minBoxVersion": "7.5.0",
"optionalSso": false
}

18
DESCRIPTION.md Normal file
View File

@ -0,0 +1,18 @@
# Cine Kids
Cine Kids est un agrégateur multi-source pour trouver rapidement les avis, classifications dâge et résumés de films pour enfants.
Utile pour les parents qui veulent éviter la merde industrielle et savoir ce que leurs enfants vont regarder.
## Fonctionnalités principales
- Recherche simultanée sur plusieurs bases (Cinecheck, CommonSense, Filmages, etc).
- Synthèse et fusion des résultats (titre, année, résumé, âge recommandé, pictogrammes…).
- Interface simple : tu cherches, tu obtiens toutes les infos utiles dun coup.
- Donne accès direct aux fiches originales pour vérif rapide.
Idéal pour :
- Filtrer les films grand public.
- Repérer dun coup dœil les critères dâge, la violence, la pub ou les contenus toxiques.
- Éviter de perdre 20 minutes sur 5 sites différents pour chaque film.

23
Dockerfile.cloudron Normal file
View File

@ -0,0 +1,23 @@
FROM debian:stable-slim
RUN apt-get update && apt-get install -y curl ca-certificates bash xz-utils && apt-get clean && rm -rf /var/lib/apt/lists/*
ARG NODE_VERSION=20.12.2
RUN curl -fsSL https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz \
| tar -xJ -C /usr/local --strip-components=1
RUN mkdir -p /app/code /app/data
COPY ./ /app/code/
COPY ./public/ /app/code/public/
WORKDIR /app/code/
RUN npm ci --omit=dev
VOLUME ["/app/data"]
COPY start.sh /app/code/
RUN chmod +x /app/code/start.sh
CMD ["/app/code/start.sh"]

7
README.md Normal file
View File

@ -0,0 +1,7 @@
## Steps
1. `do stuff`
## Demo
![picture](https://gitea.zoemp.be/sansguidon/my-custom-app/raw/branch/main/doc/demo.webp)

1
VERSION Normal file
View File

@ -0,0 +1 @@
0.0.8

8
build.sh Executable file
View File

@ -0,0 +1,8 @@
#!/bin/sh
set -x
set -eu
docker build --platform linux/amd64 -t dr.zoemp.be/my-custom-app:$(cat VERSION) -f Dockerfile.cloudron .
docker push dr.zoemp.be/my-custom-app:$(cat VERSION)
cloudron update --image dr.zoemp.be/my-custom-app:$(cat VERSION) --app my-custom-app

39
bump_version.sh Executable file
View File

@ -0,0 +1,39 @@
#!/bin/bash
# Read current version
VERSION=$(cat VERSION)
# Split version into components
IFS='.' read -r MAJOR MINOR PATCH <<< "$VERSION"
# Decide which part to bump based on the commit type
case $1 in
major)
((MAJOR++))
MINOR=0
PATCH=0
;;
minor)
((MINOR++))
PATCH=0
;;
patch)
((PATCH++))
;;
*)
echo "Usage: $0 {major|minor|patch}"
exit 1
;;
esac
# Construct the new version
NEW_VERSION="$MAJOR.$MINOR.$PATCH"
# Save the new version to the VERSION file
echo "$NEW_VERSION" > VERSION
echo "Version bumped to $NEW_VERSION"
git add VERSION
git tag "v$MAJOR.$MINOR.$PATCH"
git push origin "v$MAJOR.$MINOR.$PATCH"
git push origin --tags

11
dev.sh Executable file
View File

@ -0,0 +1,11 @@
#!/bin/sh
set -x
set -eu
docker build --platform linux/amd64 -t dr.zoemp.be/my-custom-app:$(cat VERSION) -f Dockerfile.cloudron .
docker run --platform linux/amd64 --rm -it -v "$(pwd)/data:/app/data/" -p 3000:3000 dr.zoemp.be/my-custom-app:$(cat VERSION)
# Optionnel : test d'API locale après boot
# sleep 2
# curl http://localhost:3000/search?q=test || echo "API failed (normal si pas de data mock)"

View File

@ -0,0 +1,20 @@
services:
my-custom-app:
build:
context: .
dockerfile: Dockerfile.cloudron
ports:
- "3000:3000"
volumes:
- ./app:/app/code
- ./data:/app/data
environment:
- CLOUDRON_APP_ORIGIN=https://your-cloudron-origin.com
- CLOUDRON_APP_DOMAIN=yourdomain.cloudron
user: "${MY_UID}:${MY_GID}"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/search?q=test"]
interval: 2s
timeout: 2s
retries: 3

BIN
logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

5
patch.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/sh
set -x
set -eu
./bump_version.sh patch
./build.sh

8
setup.sh Executable file
View File

@ -0,0 +1,8 @@
#!/usr/bin/env bash
set -euo pipefail
export MY_UID=$(id -u)
export MY_GID=$(id -g)
docker compose down
docker compose up --build --detach --timestamps
docker compose logs --follow | grep -E 'python|error|app'

10
start.sh Executable file
View File

@ -0,0 +1,10 @@
#!/usr/bin/env bash
set -eu
echo "Starting App"
cd /app/code
#export NODE_ENV=production
#export PORT=3000
#exec node server.js