User Guide
For customers and resellers on a LamaCP server: how to put sites, apps, containers, mail and databases online. The server's administrator has the Admin Guide.
Signing in and your account
Your hosting provider gives you the panel's sign-in address, which looks like https://panel.example.com:2006/…. Keep it: the panel shows no sign-in page anywhere else.
The account menu, at the top right, leads to Account and security:
- Profile: your e-mail address, where password reset links and notices go. Changing it needs your current password.
- Change password.
- Two-factor sign-in with any authenticator app, plus recovery codes. Turn it on: it protects every site in your account.
- Sessions: the browsers you are signed in on. End one, or sign out everywhere else.
- Appearance: light, dark or automatic. It is saved with your account.
- API tokens for scripts. They are sent as
Authorization: Bearer <token>to/api/v1/.
The Activity page, also in the account menu, lists what was done in your account.
Dashboard
The dashboard shows your sites, disk use and this month's traffic against your package's limits, plus recent activity and quick actions. Dashboard › Resource usage charts the processor and memory your sites, apps, containers, mail and FTP sessions use.
Websites
Making a site
Under Websites › Sites, press New site, enter the domain and choose what the site is:
- Static files (HTML): nginx serves the folder as it is.
- PHP: with the PHP version you choose. Your sites run in a PHP-FPM pool of their own, as your user. WordPress, Laravel and other PHP applications work here.
- Application on a local port: nginx passes visitors to a program listening on this server (Node.js, Next.js, .NET, …).
- One of the panel's apps or one of the panel's containers: the same, with the port filled in for you.
- Redirect to another address: for good (301 or 308) or for now (302 or 307).
The site gets a folder in your home directory, a DNS zone and mail for the domain. Upload files with the file manager, FTP or SFTP.
HTTPS
On the site's page, press Get a free certificate. The domain (and www, if you added it) must already point to this server. Certificates come from Let's Encrypt and renew automatically.
Changing a site
- Add www to serve
www.as well. - Change folder serves the site from another folder of your home. No files are moved: put them there first.
- Set the upload limit: what the web server accepts in one request, such as a form with its files.
- Change type switches between static, PHP, app, container and redirect. The domain, mail, DNS, files and certificate stay.
- Move site to another IP address, if your package has one. The DNS record follows.
Visitor statistics
Each site has a Visitors page counted from the web server's log: no cookies and no script on your pages. Visitors' addresses are never stored, and bots and loaded files (images, styles, scripts) are not counted as visits.
Apps (Node.js, .NET and others)
An app is a program that keeps running: a Node.js server, a .NET web app, a Python worker. LamaCP runs it as a systemd service under your user, restarts it when it stops, and keeps its log.
- Put the app's files in your home directory with the file manager, FTP or git.
- Under Websites › Apps, press New app. Give it a name, a working directory (relative to your home) and the command. For Node.js, pick one of the versions the administrator installed; a command starting with
node,npmornpxuses it. - Add environment variables, one
NAME=valueper line, and memory and processor limits if you want them. - Press Create and start. The app gets a free port from your own block of ports in the
PORTenvironment variable, so make it listen there. - Make a site of the type One of the panel's apps to give the app a domain and HTTPS.
The app's page has Start, Restart and Stop buttons, its environment and its recent log. Commands, for example:
npm start
dotnet MyApp.dll --urls http://127.0.0.1:$PORT
Containers
A container runs a Docker image under your user, never as root, from a small compose.yaml of its own.
Making a container
- Under Websites › Containers, press New container.
- Choose a group, or none. Containers in a group share a network, where they reach each other by name, and the group's environment variables.
- Write the compose file. It holds one service: the image, ports, environment, volumes in your home, the command, restart rules and resource limits.
- Press Pull and start.
services:
web:
image: ghcr.io/example/shop:1.4
restart: unless-stopped
ports:
- "127.0.0.1:8080:80"
environment:
DATABASE_URL: postgres://shop@db/shop
volumes:
- ./shop-data:/data
mem_limit: 512m
The editor highlights YAML and indents with Tab; press Esc then Tab to leave it. The hint under it lists every key that a file may use. Not offered: build, named volumes, privileged, cap_add, network_mode and devices. Push images from your CI instead of building them on the server.
Ports and the firewall
A published port stays closed to other machines until you open it under Firewall on the container's page. A port published on 127.0.0.1 is for this server only. To give a web container a domain and HTTPS, make a site of the type One of the panel's containers.
Working with containers
- The Containers list shows each container's state: Running, Stopped or Failure. Its menu starts, restarts or stops the container, or opens the live log in a window.
- The container's page shows processor and memory use. It has the live log, a shell in the container (as your user) and Pull and update to fetch the image again. Save and deploy applies a changed compose file.
- The list also shows the networks and which containers are on each.
- Images from a private registry: add the account under Containers › Registries.
Deploying from CI
Press Make a webhook address on the container's page. A POST to that address pulls the image and starts the container again, so a pipeline can deploy without SSH. Save the address as a repository secret:
- name: Deploy
run: curl -fsS -X POST "${{ secrets.LAMACP_DEPLOY_URL }}"
DNS
Domains › DNS zones lists your domains. Each zone starts with the records a site and mail need: A, MX, SPF, DKIM and DMARC. Add, edit or delete A, AAAA, CNAME, MX, TXT, SRV, CAA and NS records there.
For this server to answer for your domain, set its name servers at your registrar to the ones your provider gives you. If your DNS stays elsewhere (at the registrar, Cloudflare, …), copy the records from the domain's DNS page there.
Mail domains
Under Mail › Mail domains, turn mail on for a domain. When this server serves the domain's DNS, the panel adds MX, SPF, DKIM and DMARC records and the names mail., imap., pop., smtp. and webmail.. It then requests a certificate for those names.
Mailboxes
Under Mail › Mailboxes, press New mailbox. The password is shown once, so write it down. Each mailbox can have a quota, a new password and an automatic reply with a start and end date. Each sender gets the reply at most once a day.
Mail programs and webmail
Read mail in the browser at https://webmail.your-domain (Roundcube), or set up a mail program:
| Server | Port | Security | |
|---|---|---|---|
| Incoming (IMAP) | mail.your-domain | 993 | SSL/TLS |
| Incoming (POP3) | mail.your-domain | 995 | SSL/TLS |
| Outgoing (SMTP) | mail.your-domain | 465 or 587 | SSL/TLS or STARTTLS, with login |
The user name is the whole e-mail address. Until the domain's mail certificate is in place, use the server's own name, which the Mailboxes page shows.
Forwarders and lists
Mail › Forwarders sends an address's mail on to one or more other addresses. Mail › Lists makes a simple mailing list: mail to the list goes to every member. Both come with the paid plans.
Files and FTP
File manager
Files › File manager works inside your home directory:
- Upload, or make new files and folders.
- Rename, change permissions or delete.
- Tick several rows to move, copy, zip or delete them together.
- Extract .zip, .tar.gz, .tgz and .tar archives.
Text files open in a code editor with highlighting for the file's language (PHP, JavaScript, HTML, CSS, YAML, JSON, Python, SQL, nginx and more). It has Tab indenting, search and replace, and Ctrl+S to save.
FTP accounts
Under Files › FTP accounts, make a login for a folder of your home, or for all of it. The login sees that folder and nothing above it. Connect with FTPS to ftp.your-domain, or to the server's name that the page shows.
Databases
Under Databases, press New database and choose the engine: MySQL/MariaDB, PostgreSQL or MongoDB, as your package allows. The database and its user are named with your account's prefix, and the panel makes a strong password. The database's page has:
- the connection details and the password;
- a table browser and a query window, plus Open in Adminer;
- more users, read-only ones for example. A separate user for each app keeps one leaked password from opening everything;
- Download backup (.sql, or .archive.gz for MongoDB) and Generate a new password;
- Remote access, if the administrator allows it: up to 10 addresses or networks that may connect over TLS;
- renaming the database and, for resellers, giving it to a customer.
Apps and sites on the server connect to localhost.
Backups
When the server makes backups, Backups lists yours. Each one holds your files (sites and mail too), your databases and your settings. Choose a backup and press Restore files. It is unpacked into a new folder of your home, restore-<date>, with your files under files/ and your databases as dump files under databases/. Copy back what you need. Nothing is overwritten.
For resellers
As a reseller you host your own domains like a customer, and you also sell hosting from your package:
- Accounts › Packages: make customer packages with limits for disk, traffic, domains, sites, apps, containers, mail, FTP and each database engine.
- Accounts › Users › New user: make a customer with a package, a password (or a generated one) and their first domain. The domain gets a site, a DNS zone and mail.
- Accounts › Resources: see how much of your package you and your customers use.
- Accounts › Start page: set the page that a new site's folder starts with.
Press Sign in as on a customer's row to see the panel as they do and help them. Return to my account brings you back, and both steps are written to the activity log.
Questions? Ask your hosting provider first. For LamaCP itself, see the FAQ.
