Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
ed0cf07
Initial commit
namig7 Dec 1, 2024
0a06a7b
.gitignore
namig7 Dec 1, 2024
01d1bae
Remove venv and __pycache__ from tracking
namig7 Dec 1, 2024
ab8cc06
updated .gitignore
namig7 Dec 1, 2024
591e765
cleaning up
namig7 Dec 1, 2024
cef94b0
update
namig7 Dec 1, 2024
ff1e3ba
small style adjustments
namig7 Dec 2, 2024
1d84c6f
Bug fixes, style fixes
namig7 Dec 11, 2024
d377b94
Delete templates/project_detailsвв.html
namig7 Dec 13, 2024
faf9624
Dockerization, small adjustments, bug fixes
namig7 Dec 14, 2024
8f626aa
Merge branch 'develop' of https://github.com/namig7/vermicelli into d…
namig7 Dec 14, 2024
f342d34
Sweet Alert Notification integration, Projects Page fixes
namig7 Dec 17, 2024
a5a4985
Refactor of application and project creation, enhance Dockerfile
namig7 Dec 22, 2024
982b0f0
Update docker-compose.yaml to enhance PostgreSQL environment variable…
n4mig Dec 23, 2024
ea5e5b3
Add files via upload
namig7 Dec 23, 2024
ccfae44
Enhance README and HTML templates with detailed documentation and imp…
namig7 Jan 9, 2025
08ed081
Update README.md
namig7 Jan 9, 2025
3f95f0f
Add files via upload
namig7 Jan 9, 2025
7d97078
Update configuration for database handling and .gitignore
namig7 Jan 20, 2025
43c2405
Refactor Dockerfile to use multi-stage builds for optimized image siz…
namig7 Jan 22, 2025
ec6777b
Refactor Dockerfile for improved multi-stage build efficiency and enh…
namig7 Jan 23, 2025
ec1f2de
Update README.md
namig7 Jan 24, 2025
3eadb37
Update README.md
namig7 Jan 24, 2025
fcda90d
Added functionality of editing the project
namig7 Feb 15, 2025
dc64b3b
Update README.md
namig7 Feb 17, 2025
81c4976
Update README.md
namig7 Feb 17, 2025
27266ee
Update README.md
namig7 Feb 17, 2025
0d3b43b
Enhance loading indicators with spinner animations for applications a…
namig7 Feb 20, 2025
42e1231
Merge branch 'develop' of https://github.com/namig7/vermicelli into d…
namig7 Feb 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
33 changes: 33 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# System directories/files
__pycache__/
*.pyc
*.pyo
*.pyd

# Local virtual environments
venv/
env/
.venv/
.env

# Various local/cache files
*.db
*.sqlite3
.cache
.pytest_cache

# System files
.DS_Store

# Git
.git
.gitignore

# Docker
Dockerfile
docker-compose.yaml

# IDE
*.iml
.idea/
.vscode/
44 changes: 44 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# Python virtual environment
venv/

# Flask session files
flask_session/

# Sqlite files
instance/

# Logs
*.log

# Environment and sensitive files
*.env
*.env.*

# Cookies file
cookies.txt

# Node modules and package files
node_modules/
package-lock.json

# Static files (runtime or generated assets)
static/

# Template cache (if applicable)
templates/__pycache__/

# Backup scripts
*.backup

# Miscellaneous
*.swp
*.swo
*~
.DS_Store
flask_session/
.idea/
3 changes: 0 additions & 3 deletions .idea/.gitignore

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/inspectionProfiles/profiles_settings.xml

This file was deleted.

7 changes: 0 additions & 7 deletions .idea/misc.xml

This file was deleted.

8 changes: 0 additions & 8 deletions .idea/modules.xml

This file was deleted.

6 changes: 0 additions & 6 deletions .idea/vcs.xml

This file was deleted.

10 changes: 0 additions & 10 deletions .idea/vermicelli.iml

This file was deleted.

31 changes: 31 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# 1) Builder Stage
FROM python:3.10-slim AS builder

# Workdir inside the builder image
WORKDIR /app

# Copy only the requirements first, so Docker can cache this step
COPY requirements.txt .

# Install build dependencies, then install Python packages
RUN apt-get update && apt-get install -y --no-install-recommends gcc \
&& pip install --no-cache-dir -r requirements.txt \
&& apt-get remove -y gcc && apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/*

# 2) Final Stage
FROM python:3.10-slim

WORKDIR /app

# Copy installed Python libraries from the builder stage
COPY --from=builder /usr/local/lib/python3.10/site-packages /usr/local/lib/python3.10/site-packages

# Now copy the rest of your application code (including main.py)
COPY . .

# Expose the Flask port
EXPOSE 8000

# Final command to run the Flask app
CMD ["python", "main.py"]
82 changes: 80 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,81 @@
# vermicelli (U/C)
<div align="center" width="100%">
<img src="./static/public/logo-vermicelli-w.svg" width="128" alt="" />
</div>

### Small application for simple versioning purposes.
# Vermicelli

Simple self-hosted version control automation to track and manage the versions of your applications.

[![GitHub](https://img.shields.io/badge/GitHub-181717?style=flat&logo=github&logoColor=white)](https://github.com/namig7/vermicelli)
![GitHub Created At](https://img.shields.io/github/created-at/namig7/vermicelli)
![GitHub License](https://img.shields.io/github/license/namig7/vermicelli) ![GitHub last commit](https://img.shields.io/github/last-commit/namig7/vermicelli%2Fdevelop) ![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/namig7/vermicelli) ![GitHub top language](https://img.shields.io/github/languages/top/namig7/vermicelli)
[![CodeFactor](https://www.codefactor.io/repository/github/namig7/vermicelli/badge/develop)](https://www.codefactor.io/repository/github/namig7/vermicelli/overview/develop)

[![Docker](https://img.shields.io/badge/Docker-2496ED?logo=docker&logoColor=fff)](https://img.shields.io/docker/image-size/namigg/vermicelli/latest)
![Docker Image Size (tag)](https://img.shields.io/docker/image-size/namigg/vermicelli/latest)
![Docker Pulls](https://img.shields.io/docker/pulls/namigg/vermicelli)

[![TailwindCSS](https://img.shields.io/badge/Tailwind%20CSS-%2338B2AC.svg?logo=tailwind-css&logoColor=white)](https://github.com/namig7/vermicelli)
[![GitHub Created At](https://img.shields.io/badge/Shell_Script-121011?style=flat&logo=gnu-bash&logoColor=white)](https://github.com/namig7/vermicelli)

## Features

- **Create Multiple Applications**
Manage multiple applications and group them into one or more projects.

- **Version Tracking**
Track each application’s Major.Minor.Patch version and increment specific segments (major, minor, patch) as needed.

- **Historical Log**
Maintain a version history for each application, including release notes or additional details.

- **CI/CD Integration**
Easily integrate with your CI/CD pipelines to automate version updates and streamline releases.

- **Web UI & API**
Perform all operations through an intuitive web interface or via a REST API (e.g., using `curl`).

## Getting Started

> [!WARNING]
> `.env` file should be created prior.

The minimum content of the `.env`:

```yaml
# JWT & Flask secret keys
JWT_SECRET_KEY=your_jwt_secret_key
SECRET_KEY=your_secret_key
SESSION_TYPE=filesystem

# DB Configuration
DB_ENGINE=sqlite
DB=verdb

# List of users. Please specify using this format: "USERS=username:password;username2:password2"
USERS=admin:password;testuser:testpass
```

This script runs the container in detached mode, mapping port 8000 and using the `.env` file.

```bash
docker run -d \
--name vermicelli \
-p 8000:8000 \
--env-file .env \
-v "$(pwd)/data:/app/data" \
namigg/vermicelli:latest
```

> [!NOTE]
> Ensure that DB_ENGINE=sqlite is set in your .env if you want to use SQLite.
> Also, if you want to persist the database file outside the container, use a volume or bind mount. **`-v "$(pwd)/data:/app/data"`** is an example of mounting a local folder to store the SQLite database file persistently. When using SQLite make sure that the path points to `/app/data/verdb.db` (or a similar path), so the data is not lost when the container is removed.

## Advanced Installation

For the advanced installation steps and features(Docker & Non-docker with Postgresql etc.) please proceed to the [wiki](https://github.com/namig7/vermicelli/wiki).

## update.sh - Usage Example

```bash
./update.sh --version patch --appid 10 --username myuser --password mypass --url http://myapi.example.com
32 changes: 32 additions & 0 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
services:
postgres:
image: postgres:latest
container_name: postgres
env_file:
- .env
environment:
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
ports:
- "5432"
volumes:
- postgres_data:/var/lib/postgresql/data

vermicelli:
image: ghcr.io/namig7/vermicelli:latest
container_name: vermicelli
env_file:
- .env
ports:
- "8000:8000"
depends_on:
- postgres
healthcheck:
test: ["CMD-SHELL", "pg_isready -h postgres -U postgres"]
interval: 10s
timeout: 5s
retries: 5

volumes:
postgres_data:
Loading
Loading