Updated all documentation based on the work done so far. Here's a summary of the
documentation updates:
Updated Files:
1. CLAUDE.md - Enhanced with:
- Added repository URL
- Updated environment variables section with complete list
- Added initial setup instructions with network creation
- Fixed container names (e.g., erpnext-backend)
- Added comprehensive troubleshooting section
- Updated default port to 8080
2. README.md - Completely revamped with:
- Added links to ERPNext and Frappe Framework
- Improved prerequisites section
- Added note about initial setup time
- Enhanced services table with all key services
- Added architecture section describing all containers
- Added troubleshooting section
- Added contributing and support sections
- Better formatted installation instructions
3. Notes.md - Completely rewritten with:
- Architecture overview
- Installation process explanation
- Key configuration files documentation
- Common operations guide
- Version differences (v12 vs v13+)
- Performance tuning tips
- Security considerations
- Removed obsolete Chinese content
4. CHANGELOG.md - Added comprehensive changelog:
- Documented all websoft9 removal changes
- Listed all documentation improvements
- Tracked network name change to erpnext-local
5. .env.example - Created new example file:
- Clear documentation of all environment variables
- Secure default password placeholder
- Comments explaining each variable
- Proper structure matching actual .env
All documentation now accurately reflects:
- The erpnext-local network usage
- Port 8080 as default
- No websoft9 dependencies
- Clear installation instructions
- Comprehensive troubleshooting guides
This commit is contained in:
parent
831d1adfe3
commit
44a463d99c
25
.env.example
Normal file
25
.env.example
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# Master password for all services
|
||||||
|
POWER_PASSWORD=ChangeThisPassword123!
|
||||||
|
|
||||||
|
# Application configuration
|
||||||
|
APP_HTTP_PORT=8080
|
||||||
|
APP_NAME=erpnext
|
||||||
|
APP_USER=Administrator
|
||||||
|
APP_PASSWORD=$POWER_PASSWORD
|
||||||
|
|
||||||
|
# ERPNext version: v12, v13, or v14
|
||||||
|
APP_VERSION=v14
|
||||||
|
|
||||||
|
# Database parameter (v12 uses "mariadb", v13+ uses "db")
|
||||||
|
APP_DB_PARAM=db
|
||||||
|
|
||||||
|
# Application URL configuration
|
||||||
|
APP_URL_REPLACE=false
|
||||||
|
APP_URL=localhost
|
||||||
|
|
||||||
|
# Docker network configuration
|
||||||
|
APP_NETWORK=erpnext-local
|
||||||
|
|
||||||
|
# Database configuration
|
||||||
|
DB_MARIA_PASSWORD=$POWER_PASSWORD
|
||||||
|
DB_MARIA_PORT=3306
|
||||||
24
CHANGELOG.md
24
CHANGELOG.md
@ -1,5 +1,29 @@
|
|||||||
# CHANGELOG
|
# CHANGELOG
|
||||||
|
|
||||||
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Removed all websoft9 dependencies and references
|
||||||
|
- Changed default Docker network from `websoft9` to `erpnext-local`
|
||||||
|
- Updated documentation to reflect independent deployment
|
||||||
|
- Removed Chinese documentation (README-zh.md)
|
||||||
|
- Removed external IP detection script dependency
|
||||||
|
- Updated GitHub issue templates for generic Docker deployment
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
- Websoft9 templating GitHub workflow
|
||||||
|
- Gitee mirror GitHub workflow
|
||||||
|
- External dependency on websoft9.com IP detection script
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
- Updated README.md with comprehensive installation and usage instructions
|
||||||
|
- Enhanced CLAUDE.md with troubleshooting section and detailed configuration
|
||||||
|
- Rewrote Notes.md with architecture overview and deployment best practices
|
||||||
|
- Added architecture diagram to README
|
||||||
|
- Added troubleshooting section
|
||||||
|
- Improved FAQ section with common issues and solutions
|
||||||
|
|
||||||
## Release
|
## Release
|
||||||
### Fixes and Enhancements
|
### Fixes and Enhancements
|
||||||
|
|
||||||
|
Initial release with ERPNext v14 support
|
||||||
57
CLAUDE.md
57
CLAUDE.md
@ -4,7 +4,9 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|||||||
|
|
||||||
## Project Overview
|
## Project Overview
|
||||||
|
|
||||||
This is a Docker-based deployment of ERPNext, an open-source ERP system built on the Frappe framework. The repository provides a Cloud Native solution for simplified installation and management of ERPNext using Docker Compose.
|
This is a Docker-based deployment of ERPNext, an open-source ERP system built on the Frappe framework. The repository provides a containerized solution for simplified installation and management of ERPNext using Docker Compose.
|
||||||
|
|
||||||
|
**Repository**: https://github.com/98labs/docker-erpnext
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
@ -33,17 +35,25 @@ All services connect through a Docker network specified by `APP_NETWORK` (defaul
|
|||||||
## Environment Variables
|
## Environment Variables
|
||||||
|
|
||||||
Critical variables in `.env`:
|
Critical variables in `.env`:
|
||||||
|
- `POWER_PASSWORD`: Master password used by other services (default: LocalDev123!)
|
||||||
- `APP_VERSION`: ERPNext version (v12, v13, v14)
|
- `APP_VERSION`: ERPNext version (v12, v13, v14)
|
||||||
- `APP_PASSWORD`: Administrator password
|
- `APP_PASSWORD`: Administrator password (uses $POWER_PASSWORD)
|
||||||
- `APP_HTTP_PORT`: HTTP port for web access (default: 9001)
|
- `APP_HTTP_PORT`: HTTP port for web access (default: 8080)
|
||||||
- `DB_MARIA_PASSWORD`: MariaDB root password
|
- `DB_MARIA_PASSWORD`: MariaDB root password (uses $POWER_PASSWORD)
|
||||||
- `APP_NAME`: Container name prefix (default: erpnext)
|
- `APP_NAME`: Container name prefix (default: erpnext)
|
||||||
- `APP_NETWORK`: Docker network name (default: erpnext-local)
|
- `APP_NETWORK`: Docker network name (default: erpnext-local)
|
||||||
|
- `APP_DB_PARAM`: Database parameter (v12 uses "mariadb", v13+ uses "db")
|
||||||
|
- `APP_URL`: Application URL (default: localhost)
|
||||||
|
- `APP_USER`: Administrator username (default: Administrator)
|
||||||
|
|
||||||
## Common Development Commands
|
## Common Development Commands
|
||||||
|
|
||||||
### Starting the Application
|
### Initial Setup
|
||||||
```bash
|
```bash
|
||||||
|
# Create the Docker network (first time only)
|
||||||
|
docker network create erpnext-local
|
||||||
|
|
||||||
|
# Start the application
|
||||||
docker-compose up -d
|
docker-compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -68,7 +78,7 @@ docker exec -it erpnext-db mysql -u root -p
|
|||||||
|
|
||||||
### Accessing the Backend Shell
|
### Accessing the Backend Shell
|
||||||
```bash
|
```bash
|
||||||
docker exec -it erpnext /bin/bash
|
docker exec -it erpnext-backend /bin/bash
|
||||||
```
|
```
|
||||||
|
|
||||||
### Bench Commands (from within backend container)
|
### Bench Commands (from within backend container)
|
||||||
@ -95,8 +105,33 @@ When changing `APP_VERSION` in `.env`:
|
|||||||
|
|
||||||
## Important Notes
|
## Important Notes
|
||||||
|
|
||||||
- Port 8000 is used internally despite appearing non-standard - changing it causes container communication errors
|
- **Internal Port**: Port 8000 is used internally for container communication - do not change this
|
||||||
- The default site name is "frontend" (created by create-site service)
|
- **External Port**: The external HTTP port is configured via `APP_HTTP_PORT` in `.env` (default: 8080)
|
||||||
- Database parameter changes based on version: v12 uses "mariadb", v13+ uses "db"
|
- **Default Site**: The default site name is "frontend" (created by create-site service)
|
||||||
- All containers use restart policy "on-failure" for resilience
|
- **Database Parameter**: Changes based on version - v12 uses "mariadb", v13+ uses "db"
|
||||||
- Site data is persisted in Docker volumes (sites, assets, db-data, redis-data)
|
- **Restart Policy**: All containers use "on-failure" restart policy for resilience
|
||||||
|
- **Data Persistence**: Site data is persisted in Docker volumes (sites, assets, db-data, redis-data)
|
||||||
|
- **Network**: All services communicate through the `erpnext-local` Docker network
|
||||||
|
- **Default Credentials**: Administrator / LocalDev123!
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Port Conflicts
|
||||||
|
If port 8080 is already in use, modify `APP_HTTP_PORT` in `.env` to a different port.
|
||||||
|
|
||||||
|
### Network Issues
|
||||||
|
Ensure the Docker network exists:
|
||||||
|
```bash
|
||||||
|
docker network ls | grep erpnext-local
|
||||||
|
# If not found, create it:
|
||||||
|
docker network create erpnext-local
|
||||||
|
```
|
||||||
|
|
||||||
|
### Version Changes
|
||||||
|
When changing ERPNext versions, you must remove existing data:
|
||||||
|
```bash
|
||||||
|
docker-compose down
|
||||||
|
docker volume prune # WARNING: Removes all data
|
||||||
|
# Update APP_VERSION in .env
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
147
Notes.md
147
Notes.md
@ -1,59 +1,106 @@
|
|||||||
# ERPNext
|
# ERPNext Docker Deployment Notes
|
||||||
|
|
||||||
## Install
|
## Architecture Overview
|
||||||
|
|
||||||
官方非常及时的更新了安装所需的镜像,且提供了灵活多变的 docker compose 文件以供用户使用。
|
ERPNext uses a microservices architecture with multiple containers working together:
|
||||||
|
- Backend worker services (Frappe/ERPNext)
|
||||||
|
- Frontend Nginx service
|
||||||
|
- MariaDB database
|
||||||
|
- Redis for caching and queues
|
||||||
|
- WebSocket service for real-time features
|
||||||
|
- Queue workers for background jobs
|
||||||
|
- Scheduler for periodic tasks
|
||||||
|
|
||||||
由于过于灵活,导致理解起来有些困难。 实际上 ERPNext 的安装比较简单:
|
## Installation Process
|
||||||
|
|
||||||
1. 将 example.env 另存为根目录 .env
|
The installation is automated through Docker Compose:
|
||||||
2. 将 compose.yaml 另存为根目录下 compose.yaml 或 docker-compose.yml,然后略加修改。接下来有两个可选方案:
|
|
||||||
3. 方案一:使用 compose convert 命令合并多个 compose 为一个完整的 compose 文件(环境变量会替换),然后启动容器
|
1. **Environment Configuration**: The `.env` file contains all necessary configuration variables
|
||||||
```
|
2. **Network Setup**: Uses a dedicated Docker network (`erpnext-local`) for container communication
|
||||||
docker compose -f compose.yaml -f src/overrides/compose.erpnext.yaml -f src/overrides/compose.redis.yaml -f src/overrides/compose.mariadb.yaml convert > docker-compose.yml
|
3. **Service Orchestration**: The `docker-compose.yml` file orchestrates all services
|
||||||
```
|
4. **Initial Setup**: The `configurator` and `create-site` services handle initial configuration
|
||||||
4. 方案二(推荐):启动时引入主 compose 文件以及有选择性的启动 overrides 文件夹下的 docker compose 文件 (多 compose 文件的用法)
|
|
||||||
```
|
## Key Configuration Files
|
||||||
docker compose -f docker-compose.yml -f src/overrides/compose.erpnext.yaml -f src/overrides/compose.redis.yaml -f src/overrides/compose.mariadb.yaml up -d
|
|
||||||
|
### docker-compose.yml
|
||||||
|
Main orchestration file that defines all services and their relationships.
|
||||||
|
|
||||||
|
### .env
|
||||||
|
Environment variables including:
|
||||||
|
- `POWER_PASSWORD`: Master password
|
||||||
|
- `APP_VERSION`: ERPNext version (v12, v13, v14)
|
||||||
|
- `APP_HTTP_PORT`: External HTTP port
|
||||||
|
- `APP_NETWORK`: Docker network name
|
||||||
|
|
||||||
|
### src/compose.yaml
|
||||||
|
Base Frappe compose configuration template.
|
||||||
|
|
||||||
|
### src/overrides/
|
||||||
|
Contains specific override configurations for different components:
|
||||||
|
- `compose.erpnext.yaml`: ERPNext-specific overrides
|
||||||
|
- `compose.redis.yaml`: Redis configuration
|
||||||
|
- `compose.mariadb.yaml`: MariaDB configuration
|
||||||
|
|
||||||
|
## Common Operations
|
||||||
|
|
||||||
|
### Creating a New Site (Manual)
|
||||||
|
If you need to create additional sites:
|
||||||
|
```bash
|
||||||
|
docker compose exec backend bench new-site <site-name> --mariadb-root-password <password> --admin-password <admin-password>
|
||||||
```
|
```
|
||||||
|
|
||||||
5. 主服务 backend 中创建一个 erpnext 项目(此步骤是必须的,但很容易被忽略)
|
### Backup and Restore
|
||||||
```
|
```bash
|
||||||
APP_URL=8.218.129.87
|
# Backup
|
||||||
docker compose exec backend bench new-site youurl --mariadb-root-password yourpassword --admin-password admin123
|
docker compose exec backend bench --site frontend backup
|
||||||
|
|
||||||
or
|
# Restore
|
||||||
|
docker compose exec backend bench --site frontend restore <backup-file>
|
||||||
```
|
|
||||||
参考:https://github1s.com/frappe/frappe_docker/blob/HEAD/docs/site-operations.md
|
|
||||||
|
|
||||||
## FAQ
|
|
||||||
|
|
||||||
#### 默认管理员账号密码?
|
|
||||||
|
|
||||||
username: Administrator
|
|
||||||
password: admin
|
|
||||||
|
|
||||||
#### ERPNext 镜像与 Frappe 镜像有什么区别?
|
|
||||||
|
|
||||||
经过研究,ERPNext 是官方推出的新的镜像,感觉未来应该推荐使用它。
|
|
||||||
|
|
||||||
实验中发现 ERPNext 不会出现图片乱码问题
|
|
||||||
|
|
||||||
#### 究竟如何部署 ERPNext?
|
|
||||||
|
|
||||||
从官方源码中发现,安装文档指南(单一服务器)中对安装写得过于繁琐,但实际上只需采用 overrides 中多个 compose 文件即可快速安装。
|
|
||||||
|
|
||||||
这是怎么回事呢?通过官方的论坛中研究,发现这是文档更新不及时导致,也就是说overrides中的安装在文档中还没有体现,虽然它更具有效率。
|
|
||||||
|
|
||||||
|
|
||||||
#### 与URL有关的变量有那些?
|
|
||||||
|
|
||||||
```
|
|
||||||
echo "ROUTER=custom-one-example" > ~/gitops/custom-one-example.env
|
|
||||||
echo "SITES=\`custom-one.example.com\`" >> ~/gitops/custom-one-example.env
|
|
||||||
echo "BASE_SITE=one.example.com" >> ~/gitops/custom-one-example.env
|
|
||||||
echo "BENCH_NETWORK=erpnext-one" >> ~/gitops/custom-one-example.env
|
|
||||||
```
|
```
|
||||||
|
|
||||||
https://github.com/frappe/frappe_docker/blob/main/docs/single-server-example.md#create-custom-domain-to-existing-site
|
## Version Differences
|
||||||
|
|
||||||
|
### v12
|
||||||
|
- Uses `mariadb` as database parameter
|
||||||
|
- Older UI and features
|
||||||
|
|
||||||
|
### v13+
|
||||||
|
- Uses `db` as database parameter
|
||||||
|
- Modern UI with improved features
|
||||||
|
- Better performance
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Image Issues
|
||||||
|
If images appear broken, ensure the frontend service is running and properly configured.
|
||||||
|
|
||||||
|
### Port 8000
|
||||||
|
Internal port 8000 is hardcoded in ERPNext - do not change it. Use `APP_HTTP_PORT` for external access.
|
||||||
|
|
||||||
|
### Site Creation
|
||||||
|
The default site is named "frontend" and is created automatically by the `create-site` service.
|
||||||
|
|
||||||
|
## Performance Tuning
|
||||||
|
|
||||||
|
### Memory Requirements
|
||||||
|
- Minimum: 4GB RAM
|
||||||
|
- Recommended: 8GB+ RAM for production
|
||||||
|
|
||||||
|
### Database Optimization
|
||||||
|
MariaDB configuration can be tuned via environment variables or custom configuration files.
|
||||||
|
|
||||||
|
### Redis Configuration
|
||||||
|
Redis is used for caching and queue management. Default configuration is suitable for most deployments.
|
||||||
|
|
||||||
|
## Security Considerations
|
||||||
|
|
||||||
|
1. **Change Default Passwords**: Always change the default `POWER_PASSWORD` in production
|
||||||
|
2. **Network Isolation**: The `erpnext-local` network provides isolation between containers
|
||||||
|
3. **SSL/TLS**: Consider using a reverse proxy (nginx/traefik) for SSL termination in production
|
||||||
|
4. **Firewall Rules**: Only expose necessary ports (typically just the HTTP port)
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
- [ERPNext Documentation](https://docs.erpnext.com/)
|
||||||
|
- [Frappe Framework](https://frappeframework.com/)
|
||||||
|
- [Docker Compose Documentation](https://docs.docker.com/compose/)
|
||||||
74
README.md
74
README.md
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
|
|
||||||
This repository provides a Docker-based deployment solution for ERPNext, simplifying the installation and initialization process.
|
This repository provides a Docker-based deployment solution for [ERPNext](https://erpnext.com/), an open-source ERP system built on the [Frappe Framework](https://frappeframework.com/). It simplifies the installation and initialization process using Docker Compose.
|
||||||
|
|
||||||
## System Requirements
|
## System Requirements
|
||||||
|
|
||||||
@ -22,12 +22,15 @@ The following are the minimal [recommended requirements](https://github.com/frap
|
|||||||
|
|
||||||
### Prerequisites
|
### Prerequisites
|
||||||
|
|
||||||
If you have not installed Docker and Docker-Compose, refer to the following commands to install it:
|
Ensure you have Docker and Docker Compose installed. If not, you can install them using:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
# Install Docker
|
||||||
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
|
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
|
||||||
sudo systemctl enable docker
|
sudo systemctl enable docker
|
||||||
sudo systemctl start docker
|
sudo systemctl start docker
|
||||||
|
|
||||||
|
# Setup docker-compose alias for Docker Compose V2
|
||||||
alias docker-compose='docker compose'
|
alias docker-compose='docker compose'
|
||||||
echo "alias docker-compose='docker compose'" >> /etc/profile.d/docker-compose.sh
|
echo "alias docker-compose='docker compose'" >> /etc/profile.d/docker-compose.sh
|
||||||
source /etc/profile.d/docker-compose.sh
|
source /etc/profile.d/docker-compose.sh
|
||||||
@ -48,9 +51,11 @@ docker network create erpnext-local
|
|||||||
|
|
||||||
3. Configure environment variables (optional):
|
3. Configure environment variables (optional):
|
||||||
Edit the `.env` file to customize your deployment:
|
Edit the `.env` file to customize your deployment:
|
||||||
- `APP_PASSWORD`: Administrator password (default: LocalDev123!)
|
- `POWER_PASSWORD`: Master password for all services (default: LocalDev123!)
|
||||||
- `APP_HTTP_PORT`: HTTP port (default: 8080)
|
- `APP_HTTP_PORT`: HTTP port for web access (default: 8080)
|
||||||
- `APP_VERSION`: ERPNext version (v12, v13, or v14)
|
- `APP_VERSION`: ERPNext version - v12, v13, or v14 (default: v14)
|
||||||
|
- `APP_NAME`: Container name prefix (default: erpnext)
|
||||||
|
- `APP_NETWORK`: Docker network name (default: erpnext-local)
|
||||||
|
|
||||||
4. Start the services:
|
4. Start the services:
|
||||||
```bash
|
```bash
|
||||||
@ -59,7 +64,12 @@ docker-compose up -d
|
|||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
After deployment, you can access ERPNext at: `http://localhost:8080` (or your configured port)
|
After deployment completes (may take a few minutes for initial setup), you can access ERPNext at: `http://localhost:8080` (or your configured port)
|
||||||
|
|
||||||
|
**Note**: The initial setup creates the site and configures the database. Monitor progress with:
|
||||||
|
```bash
|
||||||
|
docker-compose logs -f create-site
|
||||||
|
```
|
||||||
|
|
||||||
### Default Credentials
|
### Default Credentials
|
||||||
|
|
||||||
@ -71,8 +81,10 @@ After deployment, you can access ERPNext at: `http://localhost:8080` (or your co
|
|||||||
|
|
||||||
| Service | Port | Use | Necessity |
|
| Service | Port | Use | Necessity |
|
||||||
| ------- | ---- | --- | --------- |
|
| ------- | ---- | --- | --------- |
|
||||||
| ERPNext Web | 8080 | Browser access to ERPNext | Y |
|
| ERPNext Web | 8080 | Browser access to ERPNext | Required |
|
||||||
| MariaDB | 3306 | Database access | Y |
|
| MariaDB | 3306 | Database access | Required |
|
||||||
|
| Redis | 6379 | Cache and queue management | Required |
|
||||||
|
| WebSocket | 9000 | Real-time communications | Required |
|
||||||
|
|
||||||
### Common Operations
|
### Common Operations
|
||||||
|
|
||||||
@ -103,6 +115,23 @@ bench --site frontend clear-cache
|
|||||||
bench --site frontend migrate
|
bench --site frontend migrate
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Container fails to start
|
||||||
|
Check if the network exists:
|
||||||
|
```bash
|
||||||
|
docker network ls | grep erpnext-local
|
||||||
|
```
|
||||||
|
If not found, create it:
|
||||||
|
```bash
|
||||||
|
docker network create erpnext-local
|
||||||
|
```
|
||||||
|
|
||||||
|
### Cannot access the application
|
||||||
|
- Verify all containers are running: `docker-compose ps`
|
||||||
|
- Check logs for errors: `docker-compose logs`
|
||||||
|
- Ensure port 8080 is not blocked by firewall
|
||||||
|
|
||||||
## FAQ
|
## FAQ
|
||||||
|
|
||||||
### Do I need to change the password before docker-compose up?
|
### Do I need to change the password before docker-compose up?
|
||||||
@ -123,10 +152,35 @@ docker volume prune
|
|||||||
docker-compose up -d
|
docker-compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
This deployment uses a microservices architecture with the following containers:
|
||||||
|
- **backend**: Main ERPNext/Frappe worker service
|
||||||
|
- **frontend**: Nginx service for serving static assets
|
||||||
|
- **db**: MariaDB 10.6 database
|
||||||
|
- **redis**: Redis cache and queue management
|
||||||
|
- **websocket**: Socket.io for real-time features
|
||||||
|
- **queue-default/long/short**: Background job workers
|
||||||
|
- **scheduler**: Scheduled tasks
|
||||||
|
- **configurator**: Initial configuration (runs once)
|
||||||
|
- **create-site**: Site creation (runs once)
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
[ERPNext Documentation](https://docs.erpnext.com/)
|
- [ERPNext Documentation](https://docs.erpnext.com/)
|
||||||
[Frappe Framework Documentation](https://frappeframework.com/docs)
|
- [Frappe Framework Documentation](https://frappeframework.com/docs)
|
||||||
|
- [Docker Compose Documentation](https://docs.docker.com/compose/)
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
Contributions are welcome! Please feel free to submit a Pull Request.
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
For issues related to:
|
||||||
|
- **This Docker setup**: Open an issue in this repository
|
||||||
|
- **ERPNext application**: Visit the [ERPNext Forum](https://discuss.erpnext.com/)
|
||||||
|
- **Frappe Framework**: Visit the [Frappe GitHub](https://github.com/frappe/frappe)
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user