Skip to content

Project

The project module is used to manage backend applications, supporting multiple languages including Go, Java, Node.js, PHP, Python, .NET, etc. Projects run as system services, supporting automatic restart, auto-start on boot, and other features.

Project Types

TypeDescriptionUse Cases
GoGo language projectsGin, Echo, Fiber frameworks
JavaJava projectsSpring Boot, Tomcat, etc.
Node.jsNode.js projectsExpress, Koa, NestJS, etc.
PHPPHP projectsLaravel Octane, Swoole, etc.
PythonPython projectsDjango, Flask, FastAPI, etc.
.NET.NET projectsASP.NET Core, Blazor, gRPC
GeneralOther types of projectsAny executable program

Project List

Project vs Website

FeatureProjectWebsite
Run ModeIndependent processDepends on Web server
Process ManagementAuto restart, auto-start on bootManaged by Web server
Use CasesBackend services, APIsTraditional Web applications
External AccessRequires reverse proxyDirect access

Create Project

  1. Go to the Project page
  2. Click Create Project

Create Project

Configuration Items

  • Project Name: Project identifier, used as service name (letters, numbers, underscores, and hyphens only)
  • Project Directory: Directory where project files are located. If left empty, defaults to the configured project path joined with the project name (e.g. /opt/ace/projects/<project name>)
  • Run User: System user to run the project, default www (you may also choose root / nobody, or type a custom user)
  • Start Command: Command to start the project
  • Reverse Proxy: Whether to automatically create a reverse proxy website

Type-specific Helper Fields

When you open the create dialog from a language-specific tab (Go, Java, Node.js, PHP, Python, or .NET), additional helper fields appear to assist you in composing the Start Command:

  • Version selection: Pick an installed runtime version for the chosen language. Only versions actually installed under Applications > Runtime Environment are listed.
  • Framework: Select a framework preset. Choosing a preset (anything other than Custom) auto-fills the Start Command in the form <runtime><version> <preset command> (for example python3.12 -m flask run --host=0.0.0.0). The generated command remains fully editable.
  • Go Run Mode (Go only): Choose between Source Code and Binary.
    • Source Code: Select a Go Version and an Entry File (e.g. main.go, cmd/server/main.go); the start command becomes go<version> run <entry file>.
    • Binary: The start command points to the compiled binary at <project directory>/main.

These helper fields only influence the generated Start Command; the panel ultimately stores the command itself, so you can always override it manually.

Reverse Proxy Options

When Reverse Proxy is enabled, two extra inputs appear:

  • Domain: One or more domains for the reverse proxy website (at least one is required).
  • Project Port: The local port your application listens on. The created website listens on port 80 and proxies to http://127.0.0.1:<project port>.

The reverse proxy website is created first; if it fails, the project is not created.

Project Management

The project list displays the following information:

  • Name: Project name
  • Description: Project description
  • Type: Project type (Go/Java/Node.js, etc.)
  • Status: Service state — one of Running (active), Stopped (inactive), Failed (failed), or Inactive (default/unknown)
  • Auto Start: Whether to auto-start on boot (toggled directly from the list)
  • Directory: Project directory
  • Actions: Start, stop, restart, logs, etc.

Project Operations

  • Start: Start the project
  • Stop: Stop the project
  • Restart: Restart the project (only shown when running)
  • Reload: Reload the project without a full restart (only shown when running)
  • Logs: View project runtime logs
  • Edit: Modify project configuration
  • Delete: Delete the project (requires a 5-second confirmation countdown)
  • Bulk Delete: Select multiple projects with the row checkboxes, then use the Delete button above the list to remove them at once (also requires a 5-second confirmation countdown)

Edit Project

Click the Edit button in the project list to modify project configuration. The edit dialog contains multiple tabs:

Basic Settings

Configure basic project information:

Basic Settings

  • Project Name: Project identifier, used as service name
  • Description: Project description information
  • Project Directory: Directory where project files are located
  • Working Directory: Working directory when the program runs, defaults to project directory
  • Run User: System user to run the project

Run Settings

Configure project runtime parameters:

Run Settings

  • Start Command: Command to start the project
  • Pre-start Command: Command to run before starting (optional)
  • Post-start Command: Command to run after starting (optional)
  • Stop Command: Custom stop command (optional)
  • Reload Command: Custom reload command (optional)
  • Restart Policy: No restart, always restart, restart on failure, on abnormal, on abort, or on success
  • Restart Interval: Wait time between restarts
  • Max Restart Count: Maximum number of consecutive restarts
  • Start Timeout: Timeout for waiting for service to start
  • Stop Timeout: Timeout for waiting for service to stop
  • Standard Output: How to handle standard output
  • Standard Error: How to handle standard error
  • Environment Variables: Set environment variables for project runtime

Dependencies

Configure service dependencies to control startup order:

Dependencies

  • Requires: Strong dependencies, if these services are unavailable, the project will fail
  • Wants: Weak dependencies, if these services fail, the project will still start
  • After: Start this project after the specified services
  • Before: Start this project before the specified services

Common services: network.target, mysqld.service, postgresql.service, redis.service

Resource Limits

Set resource limits to prevent services from consuming too many system resources:

Resource Limits

  • Memory Limit: Limit the maximum memory used by the project, 0 means unlimited
  • CPU Quota: Limit CPU usage, 100% = 1 CPU core

Security Settings

Security options to enhance service isolation:

Security Settings

  • No New Privileges: Prevent the process from gaining new privileges
  • Protect /tmp: Create a private /tmp directory for the service
  • Protect /home: Restrict access to the /home directory
  • Protect System: Set read-only protection level for system directories
    • true: /usr, /boot are read-only
    • full: + /etc is read-only
    • strict: Entire filesystem is read-only
  • Read-Write Paths: Paths the service can read and write
  • Read-Only Paths: Paths the service can only read

Note

Security settings may affect certain features. Please test thoroughly before enabling.

Process Management

Projects use systemd for process management, with the following features:

  • Auto Restart: Automatically restart after abnormal process exit
  • Auto Start on Boot: Automatically start the project when the system boots
  • Log Management: Automatically record standard output and error output

Next Steps