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
-
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 17:56:17 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
File details
Details for the file PyInventory-0.3.0.tar.gz
.
File metadata
- Download URL: PyInventory-0.3.0.tar.gz
- Upload date:
- Size: 35.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9416d34e95f0c2ba9d016a6362f70fbb0327d2536f337d227004849263a81b8c |
|
MD5 | 10d86a7f550b6e0d15127bc23c5fd04f |
|
BLAKE2b-256 | 7eada29ad79474c284e8e2c002706d8053bd574a7a325a4e62eac1a4dc88d7f8 |
File details
Details for the file PyInventory-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: PyInventory-0.3.0-py3-none-any.whl
- Upload date:
- Size: 41.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.24.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b62fc1c7e37624105d0023a4f6391146626d0aed3a3235b0ba6d05d6be4e32ef |
|
MD5 | a06efb564fbbb773fd5f87d0278f7cb6 |
|
BLAKE2b-256 | 8920b1c129699e766d5e054db93035c228e62f4e85d277c410a24fb49bf17e8d |