apps/web and apps/api. In Symplax each of those is its own app: one container, one server, its own variables and domain. You create one app per folder, all pointing at the same repository.
Deploy an app from a subfolder
1
Pick the repository
Go to Apps, click Deploy App, choose Git repository and pick your repository and branch.
2
Choose the folder
Symplax scans the repository and lists the folders it can deploy. Click one, or type a path in Root directory, for example
apps/web. Leave it empty for the repository root.3
Deploy
Finish the remaining steps and click Start Deployment.
4
Repeat for each app
Run Deploy App again with the same repository and a different root directory. Each app gets its own subdomain.
Root directory and Dockerfile path
These two settings in Settings do different jobs:
The common case for both: a workspace where
apps/web imports code from packages/shared. A build with apps/web as its root directory cannot see packages/, so a COPY packages/shared ... fails. Set Root Directory to the repository root, so the whole repository is visible, and Dockerfile Path to apps/web/Dockerfile.
Which pushes deploy which app
Every app that follows a branch has its own webhook check. When you push, Symplax looks at the files changed in the push and decides per app:- An app with a root directory deploys only if the push changed a file inside that folder.
- An app at the repository root deploys on every push to its branch.
- Watch paths: deploy only when a file in one of these paths changes. Add
packages/sharedhere to rebuildapps/webwhen the shared code changes. - Ignored paths: skip the deploy when every changed file is in one of these paths, for example
docs.
Watch paths are checked in addition to the root directory filter, not instead of it. For an app whose root directory is
apps/web, a push must still touch a file in apps/web before watch paths are considered. To deploy on changes anywhere in the listed paths, set the root directory to the repository root and use Dockerfile Path as described above.Docker Compose files
Symplax runs one app per deployment and is not an orchestrator. It can still read a compose file when that file describes the common shape: one app plus its databases. Pick Docker Compose as the deployment source and choose your repository. Symplax looks fordocker-compose.yml, docker-compose.yaml, compose.yml or compose.yaml in the root directory. If the file lives in a subfolder, put that folder in Root directory.
When the file fits, Symplax builds the app service from your repository, provisions each database service as a managed database, and wires the connection details into the app’s environment. Recognised databases are PostgreSQL, MySQL, MariaDB, MongoDB, Redis, Valkey and ClickHouse.
Symplax refuses the file, and names the services responsible, when:
- It has more than one service that is not a database.
- The app service runs a prebuilt image instead of building from the repository. Use Docker image for that.
- It describes more than four databases.
- Every service is a database.