Web based management to catalog things including state and location etc. using Python/Django.
Project description
Web based management to catalog things including state and location etc. using Python/Django.
Current status: Just start the project. Nothing is done, nothing is useable, yet ;)
Pull requests welcome!
about
The focus of this project is on the management of retro computing hardware.
Plan:
Web-based
Multiuser ready
Chaotic warehousing
Grouped “Storage”: Graphics card is in computer XY
Data structure kept as general as possible
You should be able to add the following to the items:
Storage location
State
Pictures
URLs
receiving and delivering (when, from whom, at what price, etc.)
Information: Publicly visible yes/no
A public list of existing items (think about it, you can set in your profile if you want to)
administration a wish & exchange list
any many more… ;)
install
There exists two kind of installation/usage:
local virtualenv (without docker)
production use with docker-compose
see below
prepare
~$ git clone https://github.com/jedie/PyInventory.git ~$ cd PyInventory ~/PyInventory$ make help List all commands install-poetry install or update poetry install install PyInventory via poetry manage-update Collectstatic + makemigration + migrate update update the sources and installation 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 tox-py36 Run pytest via tox with *python v3.6* tox-py37 Run pytest via tox with *python v3.7* tox-py38 Run pytest via tox with *python v3.8* pytest Run pytest update-rst-readme update README.rst from README.creole publish Release new version to PyPi run-dev-server Run the django dev server in endless loop. messages Make and compile locales message files run-server Run the gunicorn server in endless loop. backup Backup everything create-starter Create starter file. install-compose Install "docker-compose", too up Start containers via docker-compose down Stop all containers prune Cleanup docker build Update docker container build logs Display docker logs from all containers dbbackup Backup database dbrestore Restore a database backup restart Restart all containers
local install without docker
# install or update poetry: ~/PyInventory$ make install-poetry # install PyInventory via poetry: ~/PyInventory$ make install ... # Collectstatic + makemigration + migrate: ~/PyInventory$ make manage-update # Create a django super user: ~/PyInventory$ ./manage.sh createsuperuser # start local dev. web server: ~/PyInventory$ make run-dev-server
The web page is available via: http://127.0.0.1:8000/
docker-compose usage
Install docker, e.g.: https://docs.docker.com/engine/install/ubuntu/
# Install "docker-compose" via poetry extras: ~/PyInventory$ make install-compose
Create a .env file with these content, e.g.:
# Public domain or "localhost" for local testing: HOSTNAME=localhost # eMail address for Let's encrypt (Use "internal" for self signed https certificates): LETSENCRYPT_EMAIL=internal
e.g. in production:
HOSTNAME=domain.tld LETSENCRYPT_EMAIL=webmaster@domain.tld
Start containers via docker-compose:
~/PyInventory$ make up
Notes: At the first start it takes a little while until the database is created
Create first super user:
~/PyInventory$ make docker_createsuperuser
Screenshots
Multi user usage
PyInventory supports multiple users. The idea:
Every normal user sees only his own created database entries
All users used the Django admin
Note: All created Tags are shared for all existing users!
So setup a normal user:
Set “Staff status”
Unset “Superuser status”
Add user to “normal_user” group
Don’t add any additional permissions
e.g.:
Backwards-incompatible changes
Nothing, yet ;)
history
-
tbc
-
Bugfix missing translations
-
setup production usage:
Use caddy server as reverse proxy
Use uWSGI as application server
autogenerate secret.txt file for settings.SECRET_KEY
Fix settings
split settings for local development and production use
Bugfix init: move “setup user group” from checks into “post migrate” signal handler
Bugfix for using manage commands dumpdata and loaddata
-
Simplify item change list by nested item
Activate Django-Import/Export
Implement multi user usage
Add Django-dbbackup
Add docker-compose usage
-
Enhance models, admin and finish project setup
v0.0.1 - 14.10.2020
Just create a pre-alpha release to save the PyPi package name ;)
links
Homepage |
|
PyPi |
Discuss here:
donation
Note: this file is generated from README.creole 2020-10-26 19:26:06 with "python-creole"
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for PyInventory-0.3.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0886eff8411285006cb229f374d6b3141ea9e2ad145e5036859bacd36a880ea3 |
|
MD5 | dafe4bfd147c073a532304377d317038 |
|
BLAKE2b-256 | eba5cc7391e57ca9694fe3a4fa3f0f63ac8b7b6fd529065d448c19d6db6dfa85 |