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 and Files
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 these kind of installation/usage:
local development installation using poetry
production use with docker-compose on a root server
Install as YunoHost App via pyinventory_ynh
This README contains only the information about local development installation.
Read /deployment/README for instruction to install PyInventory on a root server.
local development installation
e.g.:
# Clone project (Use your fork SSH url!): ~$ git clone https://github.com/jedie/PyInventory.git ~$ cd PyInventory ~/PyInventory$ ./devshell.py
Helpful for writing and debugging unittests is to run a local test server. e.g.:
~/PyInventory$ ./devshell.py run_testserver
The web page is available via: http://127.0.0.1:8000/
You can also pass a other port number or ipaddr:port combination. See: ./devshell.py run_testserver --help
Call manage commands from test project, e.g.:
~/PyInventory$ ./devshell.py manage --help
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
The web page is available via: https://localhost/
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
-
Update requirements
NEW: Besides images, it’s now possible to add file(s) to items, too.
Add a auto login if Django dev. server is used.
-
Use https://github.com/jedie/dev-shell for development
-
Search items in change list by “kind” and “tags”, too
update requirements
-
update requirements
remove colorama from direct dependencies
Small project setup changes
-
Bugfix #33: Upload images to new created Items
-
Fix migration: Don’t create “/media/migrate.log” if there is nothing to migrate
Fix admin redirect by using the url pattern name
YunoHost app package created
update requirements
-
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 2021-08-04 09:01:51 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.9.3rc3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fbcb7362f4e6f51419451805e95927ad949254a0bac8fc5e69f97c91e2199235 |
|
MD5 | 8fce4bd1e44d2bb1e8ac5ded9f31bbd3 |
|
BLAKE2b-256 | 13e5871d5b5261e25aebf666cb464c195577557370184e732c3384524e089dd2 |