No description
Find a file
2026-03-07 12:49:04 +01:00
.github/workflows Fix autoblack: use main branch 2024-10-23 13:09:21 +02:00
assets Move tools to tools/, make them cwd-agnostic 2026-02-28 20:12:12 +01:00
src/appstore app: Fix datetime 2026-03-07 12:49:04 +01:00
templates Fix links to yunohost documentation 2026-02-18 21:19:46 +01:00
tools Move tools to tools/, make them cwd-agnostic 2026-02-28 20:12:12 +01:00
translations Update translation files 2026-02-18 21:30:07 +01:00
.gitignore Update gitignore 2026-03-04 18:45:03 +01:00
babel.cfg appstore: initialize i18n stuff 2023-09-05 20:46:28 +02:00
config.toml.example Move all data to a DATA_DIR for consistency 2026-02-28 19:47:09 +01:00
gunicorn.py 🎨 Format Python code with Black 2024-03-12 22:25:39 +01:00
LICENSE Create LICENSE (#13) 2025-05-24 21:35:01 +02:00
pyproject.toml Add project scripts 2026-03-06 09:49:43 +01:00
README.md Fix catalog path 2026-03-04 12:30:36 +01:00

YunoHost app store

This is a Flask app interfacing with YunoHost's app catalog for a cool browsing of YunoHost's apps catalog, wishlist and being able to vote/star for apps.

It is supposed to be installed with its YunoHost app.

Developement

# Install project and its dependencies
python3 -m venv .venv
.venv/bin/pip install -e .

# Manually download the web assets
./tools/fetch_assets
./tools/fetch_badges

# Create and tweak the configuration file with appropriate values...
# (not everyting is needed for the base features to work)
cp config.toml.example config.toml
nano config.toml

# You'll need to have a built version of the catalog
mkdir -p data/{cache,stars}
curl https://apps.yunohost.org/default/v3/apps.json > data/apps.json

# You will also want to run list_builder.py to initialize the .apps_cache
# (at least for a few apps, you can Ctrl+C after a while)
pushd ..
    ./apps_tools/list_builder.py
popd

And then start the dev server:

FLASK_ENV=development .venv/bin/flask --debug --app "appstore.app" run

# In another term, launch the tailwindcss process to autorebuild css:
cd assets; ./tailwindcss-linux-x64 --input tailwind-local.css --output tailwind.css --watch

Translation

It's based on Flask-Babel : https://python-babel.github.io/flask-babel/

source .venv/bin/activate

# Extract the english sentences from the code, needed if you modified it
pybabel extract -F babel.cfg -o translations/messages.pot *.py templates/*.html

# If working on a new locale: initialize it (in this example: fr)
pybabel init -i translations/messages.pot -d translations -l fr
# Otherwise, update the existing .po:
pybabel update -i translations/messages.pot -d translations

# ... translate stuff in translations/<lang>/LC_MESSAGES/messages.po
# re-run the 'update' command to let Babel properly format the text
# then compile:
pybabel compile -d translations