No description
Find a file
Alekseï 783a2c47dc Translated using Weblate (Russian)
Currently translated at 100.0% (157 of 157 strings)

Translation: YunoHost/App store
Translate-URL: https://translate.yunohost.org/projects/yunohost/store/ru/
2026-01-13 09:09:57 +01:00
.cache store: add new semi-hidden packaging dashboard (#2315) 2024-05-09 23:24:43 +02:00
.github/workflows Fix autoblack: use main branch 2024-10-23 13:09:21 +02:00
.stars appstore: small refactoring, proper cache/refresh mechanism for catalog and wishlist 2023-09-03 12:11:56 +02:00
assets Contrast ratio (#16) 2025-08-12 00:47:18 +02:00
templates Strip diacritics while searching (#20) 2025-11-16 22:24:49 +01:00
translations Translated using Weblate (Russian) 2026-01-13 09:09:57 +01:00
.gitignore Update gitignore 2024-09-27 21:35:31 +02:00
__init__.py appstore: small refactoring, proper cache/refresh mechanism for catalog and wishlist 2023-09-03 12:11:56 +02:00
app.py Run Ruff format 2025-11-10 13:16:11 +01:00
babel.cfg appstore: initialize i18n stuff 2023-09-05 20:46:28 +02:00
config.toml.example store: add new semi-hidden packaging dashboard (#2315) 2024-05-09 23:24:43 +02:00
fetch_level_history.py Run Ruff format 2025-11-10 13:16:11 +01:00
fetch_main_dashboard.py Run Ruff format 2025-11-10 13:16:11 +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
maintenance.sh Follow redirects in maintenance.sh 2024-10-07 21:16:44 +02:00
messages.pot Update translations after bullseye removal 2025-11-04 13:29:14 +01:00
nginx.conf.example appstore: Add gunicorn, systemd, nginx conf snippets for deployment 2023-08-23 15:41:51 +02:00
README.md update readme 2024-10-02 21:42:00 +02:00
requirements.txt Bump gunicorn from 22.0.0 to 23.0.0 (#15) 2025-06-08 19:55:15 +02:00
systemd.conf.example appstore: Add gunicorn, systemd, nginx conf snippets for deployment 2023-08-23 15:41:51 +02:00
utils.py 🎨 Format Python code with Black (#22) 2025-12-11 01:24:19 +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

Developement

python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
cp config.toml.example config.toml

# Tweak config.toml with appropriate values... (not everyting is needed for the base features to work)
nano config.toml

# You'll need to have a built version of the catalog
curl https://apps.yunohost.org/default/v3/apps.json > .cache/apps.json

# you need to manually download the assets to have access to the css and the javascript files
(cd assets && bash fetch_assets)

# 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)
pip3 install tqdm GitPython
pushd ..
    ./apps_tools/list_builder.py
popd

And then start the dev server:

source venv/bin/activate
FLASK_APP=app.py FLASK_ENV=development flask --debug 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 messages.pot *.py templates/*.html

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