Deploy Product
Goal
Deploy Sa2web with the installer script, including first-time installation, upgrade, verification, and HTTPS configuration.
Prerequisites
- The deployment server must run Linux x86_64. The current product does not support Windows, macOS, ARM64, or other CPU architectures.
- Docker and Docker Compose are installed.
- Installation path, internal host IP, public IP or domain, system name, and system user password are prepared.
Reference Video
For a walkthrough, see the installation reference video.
Download
Download the required team or full edition package from the official website, then extract it to a directory:
bash
cd /opt && tar -xzf browser_full_1.0.0.tar.gzSteps
- Enter the deployment directory and run the installer:
bash
cd /opt/browser_full_1.0.0
chmod +x install.sh
./install.shSelect the installation language. The script supports English, Simplified Chinese, Japanese, Vietnamese, Indonesian, Spanish, French, and Russian.
Read and accept the software agreement.
For first-time installation, enter the prompted values:
| Parameter | Description | Default |
|---|---|---|
| Installation directory | Product runtime directory | /opt/sa |
| Internal host IP | Used by containers and services | Required |
| Public host IP | Used for external access | Internal IP |
| Access domain | User-facing domain or IP | Public IP |
| System name | Frontend display name | App System |
| system user password | Initial system user password | abc123456 |
- Choose an HTTPS/SSL certificate mode:
- Let Caddy automatically request a free certificate such as Let's Encrypt.
- Use a Caddy internal certificate.
- Provide your own certificate under
volumes/ssl.
If you choose a Caddy internal certificate, client devices must install the local Caddy root certificate. See Internal Certificate Installation.
- The script loads offline images, generates
docker-compose.yml, writes runtime configuration, and starts containers.
Upgrade
- Back up the current installation directory, especially
volumes/,data/, andlogs/:
bash
tar czf /tmp/browser_backup_$(date +%F).tgz $INSTALL_PATH- Copy the new deployment files to the target server.
- Run
./install.shin the new version directory. - If
$HOME/.sa/config.envexists, the script enters upgrade mode, regenerates configuration, and runs:
bash
docker compose down
docker compose up -dVerification
bash
docker compose -f $INSTALL_PATH/docker-compose.yml ps
tail -n 200 $INSTALL_PATH/logs/app/app.log
docker compose -f $INSTALL_PATH/docker-compose.yml logs --tail 200 --followOpen:
text
https://<APP_DOMAIN>/
https://<APP_DOMAIN>/admin/loginPost-Install Initialization
- Log in to the admin console with the
systemuser. - Change the default password immediately and create at least one backup administrator.
- Get and register a license. See License Registration.
- Check system name, domain, and basic settings.
- Create machines and browser instances.
- Create a test user, test site, and test group.
- Complete one site access verification from the user portal.
Backup Recommendations
| Data | Recommendation |
|---|---|
| Install directory | Back up the full $INSTALL_PATH before upgrades |
| volumes | Preserve certificates, configuration, object storage, and runtime data |
| data | Preserve uploaded images, Caddy certificates, ClickHouse, Garage, GeoIP, and browser runtime data |
| logs | Preserve logs for troubleshooting and audit |
| Database | Back up periodically according to enterprise policy |
.sa configuration | Preserve $HOME/.sa/config.env and $HOME/.sa/user.env |
FAQ
- Automatic certificates require a public domain pointing to the server, with ports 80 and 443 open.
- For intranet deployments with a Caddy internal certificate, install
$INSTALL_PATH/data/caddy/pki/authorities/local/root.crtinto the trusted root store on client devices. - For custom certificates, name files
cert.crtandcert.key, then place them undervolumes/sslin the install directory. - Location analytics require
bash update_geolite2.shto download the GeoLite2 database. If the download fails, configure a proxy inupdate_geolite2.sh. - If installation is interrupted, first check whether Docker images loaded successfully, then inspect the install directory and old configuration under
$HOME/.sa. - To reinstall from scratch instead of upgrading, delete
$HOME/.saand runinstall.shagain.