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.
Scandy is optimized for deployment as a Portainer Stack. This allows for a clean "Plug-and-Play" installation.
- In Portainer, go to Stacks > Add stack.
- Select Repository.
- Repository URL:
https://github.com/your-repo/scandy.git - Compose path:
docker-compose.yml - Environment variables: Add the variables listed below.
- Click Deploy the stack.
- In Portainer, go to Stacks > Add stack.
- Select Web editor.
- Paste the content of the
docker-compose.ymlfile. - Environment variables: Add the variables listed below.
- Click Deploy the stack.
Add these variables in the Portainer UI under Environment variables for 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 this!). | 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 (e.g., Europe/Berlin). |
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.