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.
The project is in an early stage of development. Some things are already implemented and usable. But there is still a lot to do.
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… ;)
Project structure
There are two main directories:
directory |
description |
---|---|
`/src/`_ |
The main PyInventory source code |
`/deployment/`_ |
deploy PyInventory for production use case |
install
There exists two kind of installation/usage:
local development installation using poetry
production use with docker-compose
This README contains only the information about local development installation.
Read /deployment/README for instruction to install PyInventory on a root server.
prepare
~$ git clone https://github.com/jedie/PyInventory.git ~$ cd PyInventory/ ~/PyInventory$ make _________________________________________________________________ PyInventory - *dev* Makefile 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. createsuperuser Create super user messages Make and compile locales message files dbbackup Backup database dbrestore Restore a database backup run-docker-dev-server Start docker containers with current dev source code
local development installation
# 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/
local docker dev run
You can run the deployment docker containers with current source code with:
~/PyInventory$ make run-docker-dev-server
Just hit Cntl-C to stop the containers
Screenshots
Multi user support
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
v0.7.0
Docker-Compose usage: The MEDIA files was not stored on a docker volumes.
You should backup rhe media files before update the containers!
e.g.:
~/PyInventory/deployment$ make shell_inventory root@inventory:/django# cp -Rfv /media/ /django_volumes/media/
The files are stored locally here:
~/PyInventory/deployment$ ls -la volumes/django/media/
Now, update the containers and copy the files back.
v0.5.0
Git branches “master” and “deployment” was merged into one. Files are separated into: “/src/” and “/development/”
history
-
tbc
-
Outsource the “MEDIA file serve” part into django.tools.serve_media_app
-
Change deployment setup:
Replace uwsgi with gunicorn
make deploy setup more generic by renaming “inventory” to “django”
Bugfix MEDIA path: store the files on a docker volumes
run app server as normal user and not root
pull all docker images before build
-
User can store images to every item: The image can only be accessed by the same user.
-
Merge separate git branches into one: “/src/” and “/development/” #19
-
Serve static files by Caddy
Setup CKEditor file uploads: Store files into random sub directory
reduce CKEditor plugins
-
Small bugfixes
-
Move docker stuff and production use information into separate git branch
Add django-axes: keeping track of suspicious logins and brute-force attack blocking
Add django-processinfo: collect information about the running server processes
-
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-12-06 19:20:04 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.8.0rc1.tar.gz
.
File metadata
- Download URL: PyInventory-0.8.0rc1.tar.gz
- Upload date:
- Size: 47.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52d4db66a5ed089adf19995e50f9eb05a8c21a4f48c80e2a26c063f7749ccbf4 |
|
MD5 | 94db5c1ebb5118dccafec60e723ce7cf |
|
BLAKE2b-256 | 9bd8c26f7619ecdde7557e6b3d446d170731606a967ec942b3a3e39d2d1a5a67 |
Provenance
File details
Details for the file PyInventory-0.8.0rc1-py3-none-any.whl
.
File metadata
- Download URL: PyInventory-0.8.0rc1-py3-none-any.whl
- Upload date:
- Size: 72.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c6297b0f6584285bb27207d3c79aa6e7dfa7599991e4a1071ab498be20f5640f |
|
MD5 | 80053b56e623bb42866e77a0d3d57ca8 |
|
BLAKE2b-256 | 9a0f28c507bd7804dd2255d073cd1f5bb0fb5c7d8c13285fae4f1f596c2f36d1 |