Scandy is a lightweight and flexible inventory management system built with Flask and MongoDB. It is designed to be easily deployed using Docker and managed via Portainer.
The easiest way to get Scandy up and running is using Docker Compose.
-
Clone the repository:
git clone https://github.com/your-repo/scandy.git cd scandy -
Create a
.envfile: Copy the example environment file and adjust the values:cp env.example .env
-
Start the application:
docker-compose up -d
-
Access Scandy: Open your browser and navigate to
http://localhost:5000.
To install Scandy as a Stack in Portainer:
- Log in to your Portainer instance.
- Go to Stacks > Add stack.
- Give the stack a name (e.g.,
scandy). - Select Web editor and paste the content of
docker-compose.yml. - Under Environment variables, add the necessary variables (see list below).
- Click Deploy the stack.
| Variable | Description | Default |
|---|---|---|
APP_PORT |
The port the application will be accessible on. | 5000 |
MONGO_ROOT_USER |
Root username for MongoDB. | admin |
MONGO_ROOT_PASSWORD |
Root password for MongoDB. | change_me_immediately |
MONGODB_DB |
Name of the database. | scandy |
SECRET_KEY |
Flask secret key for session encryption. | change_me_secret_key |
FLASK_ENV |
Flask environment (production or development). |
production |
TIMEZONE |
System timezone. | Europe/Berlin |
ME_PORT |
Port for Mongo Express (Web UI for MongoDB). | 8081 |
ME_BASICAUTH_USER |
Basic auth username for Mongo Express. | admin |
ME_BASICAUTH_PASSWORD |
Basic auth password for Mongo Express. | change_me_immediately |
Scandy uses Docker volumes to ensure your data is persistent:
mongodb_data: Stores the MongoDB database files.app_uploads: Stores uploaded files.app_backups: Stores database backups.app_logs: Stores application logs.app_sessions: Stores user session data.
If you want to contribute to Scandy, you can use the following commands:
make build: Build the Docker images.make test: Run the test suite.make lint: Run linting checks.make format: Format the code.
This project is licensed under the MIT License.