docs: add MIT license and update README
This commit is contained in:
21
LICENSE
Normal file
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2026 Alejandro Ayala Usuga, Alejandra Urrego - AUSOLITIONS - ONECLUSTER
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
230
README.md
230
README.md
@@ -1,2 +1,228 @@
|
|||||||
Naliia
|
# NaliiaPro
|
||||||
======
|
|
||||||
|
A Docker-based ERP system built on Tryton, designed for business management with a modular architecture including web server, background workers, and scheduled tasks.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
NaliiaPro is an enterprise resource planning (ERP) application powered by [Tryton](https://www.tryton.org/), a powerful open-source ERP framework written in Python. The project uses Docker containerization for easy deployment and scaling.
|
||||||
|
|
||||||
|
## Technology Stack
|
||||||
|
|
||||||
|
| Component | Technology |
|
||||||
|
|-----------|------------|
|
||||||
|
| **ERP Framework** | Tryton |
|
||||||
|
| **Database** | PostgreSQL |
|
||||||
|
| **Web Server** | Nginx (Reverse Proxy) |
|
||||||
|
| **Containerization** | Docker & Docker Compose |
|
||||||
|
| **Backend** | Python |
|
||||||
|
| **Task Queue** | Tryton Worker (Celery-like) |
|
||||||
|
| **Scheduler** | Tryton Cron |
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
The application consists of multiple Docker services:
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────┐
|
||||||
|
│ Nginx │ Port: 10000 (configurable)
|
||||||
|
└──────┬──────┘
|
||||||
|
│
|
||||||
|
┌──────▼──────┐
|
||||||
|
│ Tryton │ Main application server (Port 8000)
|
||||||
|
└──────┬──────┘
|
||||||
|
│
|
||||||
|
┌──────▼──────┐
|
||||||
|
│ PostgreSQL │ Database
|
||||||
|
└─────────────┘
|
||||||
|
|
||||||
|
┌─────────────┐
|
||||||
|
│ Worker │ Background task processor
|
||||||
|
└─────────────┘
|
||||||
|
|
||||||
|
┌─────────────┐
|
||||||
|
│ Cron │ Scheduled tasks
|
||||||
|
└─────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
### Services
|
||||||
|
|
||||||
|
- **db**: PostgreSQL database container
|
||||||
|
- **tryton**: Tryton server handling HTTP requests
|
||||||
|
- **worker**: Background worker for async tasks
|
||||||
|
- **cron**: Scheduled task runner
|
||||||
|
- **nginx**: Reverse proxy handling external requests
|
||||||
|
|
||||||
|
## Project Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
NaliiaPro/
|
||||||
|
├── docker-compose.yaml # Docker Compose configuration
|
||||||
|
├── nginx.conf # Nginx reverse proxy configuration
|
||||||
|
├── .env.example # Environment variables template
|
||||||
|
├── .gitignore # Git ignore patterns
|
||||||
|
└── README.md # This file
|
||||||
|
```
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
- Docker
|
||||||
|
- Docker Compose
|
||||||
|
- Access to the Naliia Docker image registry
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
### Environment Variables
|
||||||
|
|
||||||
|
Copy `.env.example` to `.env` and configure the following variables:
|
||||||
|
|
||||||
|
| Variable | Description | Default |
|
||||||
|
|----------|-------------|---------|
|
||||||
|
| `NALIIA_IMAGE` | Docker image for Tryton | `gitea.onecluster.org/oneteam/naliia:1.0.0_pro` |
|
||||||
|
| `DB_HOSTNAME` | Database hostname | `db` |
|
||||||
|
| `POSTGRES_DB` | Database name | `database` |
|
||||||
|
| `POSTGRES_USER` | Database user | `postgres` |
|
||||||
|
| `POSTGRES_PASSWORD` | Database password | `SUp3r-pass*DB` |
|
||||||
|
| `TRYTOND_DATABASE_URI` | Tryton database connection URI | `postgresql://user:pass@db:5432/` |
|
||||||
|
| `EMAIL` | Admin email | `admin@admin.org` |
|
||||||
|
| `TRYTON_PORT` | Tryton server port | `8000` |
|
||||||
|
| `SERVER_NAME` | Domain name for Nginx | `tryton.domain.com` |
|
||||||
|
| `NGINX_PORT` | Nginx listening port | `10000` |
|
||||||
|
| `SMTP_*` | SMTP configuration for email | See `.env.example` |
|
||||||
|
|
||||||
|
### SMTP Configuration
|
||||||
|
|
||||||
|
Configure SMTP settings for email notifications:
|
||||||
|
|
||||||
|
```
|
||||||
|
SMTP=True
|
||||||
|
SMTP_TYPE=smtps+ssl
|
||||||
|
SMTP_USER=user
|
||||||
|
SMTP_PASSWORD=password
|
||||||
|
SMTP_DOMAIN=domain.com
|
||||||
|
SMTP_PORT=465
|
||||||
|
SMTP_FROM=Company CO
|
||||||
|
SMTP_EMAIL=domain@domain.com
|
||||||
|
```
|
||||||
|
|
||||||
|
## Setup & Installation
|
||||||
|
|
||||||
|
### 1. Clone the Repository
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone <repository-url>
|
||||||
|
cd NaliiaPro
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Configure Environment Variables
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp .env.example .env
|
||||||
|
# Edit .env with your configuration
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Start the Application
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Verify Services
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose ps
|
||||||
|
```
|
||||||
|
|
||||||
|
The application should be accessible at `http://localhost:10000` (or the port specified in `NGINX_PORT`).
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
### Basic Commands
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Start all services
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
# Stop all services
|
||||||
|
docker-compose down
|
||||||
|
|
||||||
|
# View logs
|
||||||
|
docker-compose logs -f
|
||||||
|
|
||||||
|
# View logs for specific service
|
||||||
|
docker-compose logs -f tryton
|
||||||
|
|
||||||
|
# Restart a specific service
|
||||||
|
docker-compose restart tryton
|
||||||
|
```
|
||||||
|
|
||||||
|
### Accessing Tryton
|
||||||
|
|
||||||
|
After starting the services, access Tryton through the Nginx proxy:
|
||||||
|
|
||||||
|
- **URL**: `http://localhost:10000` (or configured `NGINX_PORT`)
|
||||||
|
- **Protocol**: Tryton XML-RPC/SOAP
|
||||||
|
|
||||||
|
### Database Management
|
||||||
|
|
||||||
|
The PostgreSQL data is persisted in a Docker volume. To reset the database:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose down -v # Warning: This deletes all data
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
### Volume Mounts
|
||||||
|
|
||||||
|
The following volumes are mounted for development:
|
||||||
|
|
||||||
|
- `var`: Tryton var directory
|
||||||
|
- `attachment`: File attachments storage
|
||||||
|
|
||||||
|
### Health Checks
|
||||||
|
|
||||||
|
Each service includes health checks:
|
||||||
|
- **db**: Checks PostgreSQL availability
|
||||||
|
- **tryton**: Checks HTTP response on port 8000
|
||||||
|
- **worker/cron**: Started after tryton is healthy
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Check Service Logs
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose logs db
|
||||||
|
docker-compose logs tryton
|
||||||
|
docker-compose logs worker
|
||||||
|
docker-compose logs cron
|
||||||
|
```
|
||||||
|
|
||||||
|
### Common Issues
|
||||||
|
|
||||||
|
1. **Database connection failed**: Verify `POSTGRES_PASSWORD` and `DB_HOSTNAME` in `.env`
|
||||||
|
2. **Nginx 502 Bad Gateway**: Ensure Tryton service is running and healthy
|
||||||
|
3. **Port conflicts**: Change `NGINX_PORT` in `.env` if port 10000 is in use
|
||||||
|
|
||||||
|
### Reset Everything
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose down -v
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
## Security Notes
|
||||||
|
|
||||||
|
- Change default passwords in production
|
||||||
|
- Use strong database passwords
|
||||||
|
- Configure SSL/TLS in Nginx for production
|
||||||
|
- Keep Docker images updated
|
||||||
|
- Never commit `.env` files to version control
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
For issues and questions, please contact the development team.
|
||||||
|
|||||||
Reference in New Issue
Block a user