10 KiB
Django Example pour YunoHost
Ce package vous permet d’installer Django Example rapidement et simplement sur un serveur YunoHost. Si vous n’avez pas YunoHost, regardez ici pour savoir comment l’installer et en profiter.
Vue d’ensemble
Demo YunoHost Application to demonstrate the integration of a Python/Django project under YunoHost using django_yunohost_integration.
To demonstrate the functionality the small django-example app will be installed.
Pull requests welcome ;)
Version incluse : 0.2.0~ynh2
Avertissements / informations importantes
local test
For quicker developing of django_example_ynh in the context of YunoHost app, it's possible to run the Django developer server with the settings and urls made for YunoHost installation.
e.g.:
~$ git clone https://github.com/YunoHost-Apps/django_example.git
~$ cd django_example_ynh/
~/django_example$ make
install-poetry install or update poetry
install install project via poetry
update update the sources and installation and generate "conf/requirements.txt"
lint Run code formatters and linter
fix-code-style Fix code formatting
tox-listenvs List all tox test environments
tox Run pytest via tox with all environments
pytest Run pytest
publish Release new version to PyPi
local-test Run local_test.py to run the project locally
local-diff-settings Run "manage.py diffsettings" with local test
~/django_example$ make install-poetry
~/django_example$ make install
~/django_example$ make local-test
Notes:
- SQlite database will be used
- A super user with username
test
and passwordtest
is created - The page is available under
http://127.0.0.1:8000/app_path/
history
- compare v0.1.5...master dev
- tbc
- v0.2.0 - 15.09.2021
- rename/split
django_example_ynh
into:- django_yunohost_integration - Python package with the glue code to integrate a Django project with YunoHost
- django_example_ynh - Demo YunoHost App to demonstrate the integration of a Django project under YunoHost
- rename/split
- v0.1.5 - 19.01.2021
- Make some deps
gunicorn
,psycopg2-binary
,django-redis
,django-axes
optional
- Make some deps
- v0.1.4 - 08.01.2021
- v0.1.3 - 08.01.2021
- set "DEBUG = True" in local_test (so static files are served and auth works)
- Bugfixes and cleanups
- v0.1.2 - 29.12.2020
- Bugfixes
- v0.1.1 - 29.12.2020
- Refactor "create_superuser" to a manage command, useable via "django_example_ynh" in
INSTALLED_APPS
- Generate "conf/requirements.txt" and use this file for install
- rename own settings and urls (in
/conf/
)
- Refactor "create_superuser" to a manage command, useable via "django_example_ynh" in
- v0.1.0 - 28.12.2020
- first working state
- 23.12.2020
- init the project
Links
- Report a bug about this package: https://github.com/YunoHost-Apps/django_example
- YunoHost website: https://yunohost.org/
- PyPi package: https://pypi.org/project/django-ynh/
These projects used django_example_ynh
:
- https://github.com/YunoHost-Apps/django_example
- https://github.com/YunoHost-Apps/django-for-runners_ynh
Developer info
The App project will be stored under __DATA_DIR__
(e.g.: /home/yunohost.app/$app/
) that's Django's settings.DATA_DIR_PATH
"static" / "media" files to serve via nginx are under __INSTALL_DIR__
(e.g.: /var/www/$app/
) that's settings.INSTALL_DIR_PATH
package installation / debugging
This app is not in YunoHost app catalog. Test install, e.g.:
~# git clone https://github.com/YunoHost-Apps/django_example_ynh.git
~# yunohost app install django_example_ynh/ -f
To update:
~# cd django_example_ynh
~/django_example_ynh# git fetch && git reset --hard origin/testing
~/django_example_ynh# yunohost app upgrade django_example -u . -F
To remove call e.g.:
sudo yunohost app remove django_example
Backup / remove / restore cycle, e.g.:
yunohost backup create --apps django_example
yunohost backup list
archives:
- django_example_ynh-pre-upgrade1
- 20230822-062848
yunohost app remove django_example
yunohost backup restore 20230822-062848 --apps django_example
Debug the installation, e.g.:
root@yunohost:~# cat /etc/yunohost/apps/django_example/settings.yml
...
app: django_example
...
data_dir: /home/yunohost.app/django_example
...
install_dir: /var/www/django_example
...
log_file: /var/log/django_example/django_example.log
...
root@yunohost:~# ls -la /var/www/django_example/
total 18
drwxr-xr-x 4 root root 4 Dec 8 08:36 .
drwxr-xr-x 6 root root 6 Dec 8 08:36 ..
drwxr-xr-x 2 root root 2 Dec 8 08:36 media
drwxr-xr-x 7 root root 8 Dec 8 08:40 static
root@yunohost:~# ls -la /home/yunohost.app/django_example/
total 58
drwxr-xr-x 5 django_example_ynh django_example_ynh 11 Dec 8 08:39 .
drwxr-xr-x 3 root root 3 Dec 8 08:36 ..
-rw-r--r-- 1 django_example_ynh django_example_ynh 460 Dec 8 08:39 gunicorn.conf.py
-rw-r--r-- 1 django_example_ynh django_example_ynh 0 Dec 8 08:39 local_settings.py
-rwxr-xr-x 1 django_example_ynh django_example_ynh 274 Dec 8 08:39 manage.py
-rw-r--r-- 1 django_example_ynh django_example_ynh 171 Dec 8 08:39 secret.txt
drwxr-xr-x 6 django_example_ynh django_example_ynh 6 Dec 8 08:37 venv
-rw-r--r-- 1 django_example_ynh django_example_ynh 115 Dec 8 08:39 wsgi.py
-rw-r--r-- 1 django_example_ynh django_example_ynh 4737 Dec 8 08:39 django_example_ynh_demo_settings.py
root@yunohost:~# /home/yunohost.app/django_example/manage.py diffsettings
...
root@yunohost:~# /home/yunohost.app/django_example/manage.py check
ENV_TYPE:None
PROJECT_PATH:/home/yunohost.app/django_example/venv/lib/python3.9/site-packages
BASE_PATH:/root/django_example
System check identified no issues (0 silenced).
root@yunohost:~# cat /etc/systemd/system/django_example.service
...
root@yunohost:~# systemctl reload-or-restart django_example
root@yunohost:~# journalctl --unit=django_example --follow
...
root@yunohost:~# tail -f /var/log/django_example/django_example.log
...
root@yunohost:~# tail -f /var/log/nginx/*.log
...
root@yunohost:~# ls -la /etc/nginx/conf.d/
root@yunohost:~# cat /etc/nginx/conf.d/$domain.d/django_example.conf
Documentations et ressources
- Documentation officielle utilisateur : https://github.com/jedie/django-example
- Documentation officielle de l’admin : https://github.com/YunoHost-Apps/django_example_ynh
- Dépôt de code officiel de l’app : https://github.com/YunoHost-Apps/django_example_ynh
- Documentation YunoHost pour cette app : https://yunohost.org/app_django_example
- Signaler un bug : https://github.com/YunoHost-Apps/django_example_ynh/issues
Informations pour les développeurs
Merci de faire vos pull request sur la branche testing.
Pour essayer la branche testing, procédez comme suit.
sudo yunohost app install https://github.com/YunoHost-Apps/django_example_ynh/tree/testing --debug
ou
sudo yunohost app upgrade django_example -u https://github.com/YunoHost-Apps/django_example_ynh/tree/testing --debug
Plus d’infos sur le packaging d’applications : https://yunohost.org/packaging_apps