🚀

# Ecosystem Installation

Complete guide for installing ScyllaDB, Java 8, and enabling the Ecosystem Add-On

## 📖 Overview

This guide covers installing and configuring ScyllaDB (v5.4), Java 8, and enabling the Ecosystem Add-On for your Bicrypto platform. You'll also learn how to manually create a new ScyllaDB user and update your `.env` accordingly.

Requirements

- • CPU: With SSE 4.2 and PCLMUL support
- • RAM: 4GB minimum

## 1️⃣ Install ScyllaDB 5.4

1

### Open the Root Terminal

Open the Root Terminal in Virtualmin (or SSH into your server).

2

### Run Installation Commands

Execute the following commands to install ScyllaDB version 5.4:

`sudo mkdir -p /etc/apt/keyrings sudo gpg --homedir /tmp --no-default-keyring --keyring /etc/apt/keyrings/scylladb.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys d0a112e067426ab2 sudo curl -L --output /etc/apt/sources.list.d/scylla.list https://downloads.scylladb.com/deb/ubuntu/scylla-5.4.list sudo apt-get update sudo apt-get install -y scylla`

## 2️⃣ Install Java (Required for ScyllaDB Tools)

☕

### Install Java 8

Run the following commands to install Java 8:

`sudo apt-get update sudo apt-get install -y openjdk-8-jre-headless sudo update-java-alternatives --jre-headless -s java-1.8.0-openjdk-amd64`

This ensures Java 8 is installed and set as your default Java runtime for headless environment.

## 3️⃣ Edit ScyllaDB Configuration

1

### Open Configuration File

`nano /etc/scylla/scylla.yaml`
2

### Change API Port

Find `api_port: 10000` and modify it to `api_port: 10001`. This avoids conflicts with Virtualmin's default port 10000.

3

### Enable Password Authentication

Locate `# authenticator: AllowAllAuthenticator` and change it to:

`authenticator: PasswordAuthenticator`
4

### Save and Exit

Press `Ctrl + X`, type `Y` to confirm, then `Enter` to save.

## 4️⃣ Run Scylla Setup

⚙️

### Initialize Scylla

`sudo scylla_setup`

Follow the on-screen prompts. The setup process includes multiple configuration steps:

## 5️⃣ Start and Enable Scylla Server

🚀

### Start ScyllaDB Service

`sudo systemctl start scylla-server sudo systemctl enable scylla-server`

## 6️⃣ Enable Ecosystem Extension in Bicrypto

1

### Navigate to Extensions

Go to your site's Admin side: System > Extensions.

2

### Select Ecosystem Extension

Select the Ecosystem extension page.

3

### Verify License and Update

Verify your License: If it's your first time, you may need to verify the license or install the add-on manually by contacting support.

Check for Updates: Click Check for Updates, then Update. Refresh the page once it's done.

4

### Enable Extension and Run Updator

Enable the Extension: If you're on the latest version, click Enable.

Run PNPM Updator: Open the User Terminal, navigate to `public_html`, and run:

`pnpm updator`

## 7️⃣ Create a New ScyllaDB User

Here's how to create a new ScyllaDB user manually:

1

### Open Root Terminal

Open the Root Terminal in Virtualmin (or SSH into your server).

2

### Connect with Default Credentials

By default, ScyllaDB comes with `cassandra:cassandra` for the superuser. Run:

`cqlsh -u cassandra -p cassandra`
3

### Create New Superuser Role

Inside the `cqlsh` prompt, type:

`CREATE ROLE IF NOT EXISTS new_username WITH PASSWORD = 'new_password' AND LOGIN = true AND SUPERUSER = true;`

- • `new_username` = Your desired username
- • `new_password` = A strong password

Press `Enter` to execute. This will create (or update) a superuser role.

4

### Test New Credentials

Exit cqlsh by typing `exit` or pressing `Ctrl + D`, then reconnect using your new credentials:

`cqlsh -u new_username -p new_password`

If you can run `describe keyspaces;` without errors, the new user is valid.

5

### Update .env File

Go to File Manager and edit the `.env` file:

In your `.env` file (within `public_html` or your project root), add or edit these lines:

`SCYLLA_USERNAME="new_username" SCYLLA_PASSWORD="new_password"`

Save and close the file. Make sure you have the correct syntax (use quotes if needed).

## 8️⃣ Generate and Encrypt a Passphrase (Optional KMS Setup)

If you need to set up an encryption passphrase for KMS (Key Management Service) within Bicrypto:

1

### Navigate to Project Directory

Go to the User Terminal and enter `public_html`:

`cd public_html`
2

### Generate Passphrase

Run the following command to generate a passphrase:

`node ./scripts/kms/generate.mjs`

This script will:

- • Ask you to create a passphrase of at least 12 characters
- • Generate a raw encryption key and encrypted encryption key
- • Add `ENCRYPTED_ENCRYPTION_KEY` to your `.env` if not already set
- • Warn you to securely store your passphrase

## 9️⃣ Finalize Changes by Updating the Backend

🔄

### Update Backend

Still in the User Terminal, run:

`pnpm updator:backend`

This applies any new environment settings (e.g., `.env` changes, encryption keys) to your Bicrypto backend.

## 🔍 Verification & Final Steps

### 🔧 System Checks

ScyllaDB Status

Check `systemctl status scylla-server`

Check Logs

Use `journalctl -u scylla-server` or `pm2 log`

### ✅ Functionality

Ecosystem Features

Confirm advanced trading features work properly

Additional Modules

Test blockchain integration and wallet functionality

## 🔒 Security Considerations

Critical Security Warnings

- • Secure Credentials: Always secure your server and rotate credentials periodically
- • Monitor Logs: Regularly check logs for potential security issues
- • Backup Strategy: Maintain regular backups of your database and configuration
- • Access Control: Limit access to ScyllaDB and admin interfaces

## 🎯 Conclusion

Installation Complete!

By installing ScyllaDB, configuring Java 8, enabling password authentication, and integrating the Ecosystem add-on, your Bicrypto platform can leverage high-performance features and additional functionalities. Always secure your server, rotate credentials periodically, and monitor logs for potential issues.