Skip to content

Installation howto - ubuntu server #32

Description

@kaktux

Hi ,
as i just successfully installed sitesync on a ubunt 26.04. virtual machine (virt-manager) i wanted to leave my howto here.

Maybe it will help somebody.
For ease of use i installed adminer for database configuration.

SiteSync Installation Guide (Ubuntu 26.04 VM)

1. Requirements & System Dependencies

Install all required runtimes, system utilities, and official package managers:

  • sudo apt update && sudo apt upgrade -y
    Update system package lists and apply latest upgrades.
  • sudo apt install -y openssh-server
    Install SSH server for remote terminal access.
  • sudo apt install -y ufw
    Install the Uncomplicated Firewall utility.
  • sudo apt install -y nano
    Install the command-line text editor.
  • sudo apt install -y mariadb-server
    Install the database server for your WordPress instances.
  • sudo apt install -y adminer
    Install the web-based database management tool.
  • sudo apt install -y php8.5-xml
    Install the mandatory XML and DOM extension for PHP.
  • sudo apt install -y composer
    Install the PHP package manager from the official Ubuntu repositories.
  • sudo apt install -y nodejs npm
    Install Node.js and NPM required for building the frontend assets.

2. MariaDB Administrator & Adminer Setup

Create the database administrator account via the console and set up your databases using the Adminer web interface:

  • sudo mysql -u root
    Log into the MariaDB console as root.
  • Execute the following SQL commands to create a global administrator with a password:
    CREATE USER '<YOUR_DB_USER>'@'localhost' IDENTIFIED BY '<YOUR_SECURE_PASSWORD>';
    GRANT ALL PRIVILEGES ON *.* TO '<YOUR_DB_USER>'@'localhost' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    EXIT;
  • ip a
    Run this command in your terminal to find your local server IP address.
  • Log into Adminer: Open your browser, navigate to https://<YOUR_IP>/adminer, and log in using the newly created <YOUR_DB_USER> credentials.
  • Database Creation: Inside Adminer, create the separate MySQL/MariaDB databases needed for your individual WordPress instances.
  • Note: Ensure that the character set is set to utf8mb4 and collation to utf8mb4_unicode_ci for optimal WordPress compatibility.

3. Version Verification Checks

Verify that the installed system tools meet SiteSync's requirements (PHP 8.4+, Node 20+, rsync/ssh in PATH):

  • php -v
    Ensure PHP version is 8.4 or higher (Ubuntu 26.04 default is 8.5).
  • composer --version
    Confirm Composer is installed and globally available.
  • node -v
    Verify Node.js version is 20 or higher.
  • npm -v
    Verify NPM package manager is installed.
  • rsync --version
    Ensure rsync utility is available in the system PATH.
  • ssh -V
    Ensure OpenSSH client is available in the system PATH.

4. Application Download & Setup

Clone the codebase and run the automated framework installation using SQLite as the internal application database:

  • cd ~
    Change directory to your user's home folder.
  • git clone https://github.com/sparkison/
    Download the original SiteSync repository from GitHub (if you don't use a fork).
  • cd site-sync
    Navigate into the newly created project directory.
  • composer run setup
    Execute the official built-in automated installation script.
  • php artisan make:filament-user
    Create your administrator login credentials for the web dashboard via interactive prompt.

5. Autostart Configuration (Systemd)

Configure SiteSync as a persistent background service so it is instantly available on port 8000 when the VM boots up:

  • sudo nano /etc/systemd/system/sitesync.service
    Open a new systemd configuration file in the text editor.
  • Paste the following service configuration block into the editor, then save and exit (CTRL+O, Enter, CTRL+X):
    [Unit]
    Description=SiteSync Autostart Server
    After=network.target
    
    [Service]
    User=<YOUR_SYSTEM_USER>
    Group=<YOUR_SYSTEM_GROUP>
    WorkingDirectory=/home/<YOUR_SYSTEM_USER>/site-sync
    ExecStart=/usr/bin/php artisan serve --host=0.0.0.0 --port=8000
    Restart=always
    RestartSec=5
    
    [Install]
    WantedBy=multi-user.target
  • sudo systemctl daemon-reload
    Reload the systemd manager configuration to recognize the new service file.
  • sudo systemctl enable sitesync.service
    Configure the service to start automatically whenever the Ubuntu VM boots up.
  • sudo systemctl start sitesync.service
    Launch the SiteSync web server immediately in the background.

6. Summary: Service Access URLs

Once the configuration is complete and the VM is running, the services can be accessed using the following URLs:

  • Adminer Database Management (via Web Server):
    https://<YOUR_IP>/adminer
    
  • SiteSync Dashboard (via Systemd Background Service):
    http://<YOUR_IP>:8000
    

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions