Skip to content

Commit

Permalink
feat: Add install guide (#34)
Browse files Browse the repository at this point in the history
  • Loading branch information
HttpRafa authored Jan 7, 2025
1 parent e6d1678 commit 833b2bb
Show file tree
Hide file tree
Showing 13 changed files with 118 additions and 19 deletions.
3 changes: 3 additions & 0 deletions docs/api/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Available Options

Currently, the cloud offers a first-party JVM library. This library is compatible with all programming languages that compile to JVM bytecode, providing a versatile solution for developers working within the JVM ecosystem.
14 changes: 14 additions & 0 deletions docs/api/options/jvm.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# JVM

The API is published on the GitHub Packages Maven repository. You may need to authenticate to access it. For more information about the packages, please click [here](https://github.com/HttpRafa/atomic-cloud/packages/2219240).

## Maven
To include the API in your Maven project, add the following dependency to your `pom.xml` file:

```xml
<dependency>
<groupId>io.atomic.cloud</groupId>
<artifactId>api</artifactId>
<version>0.1.0-SNAPSHOT</version>
</dependency>
```
5 changes: 5 additions & 0 deletions docs/cli/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# CLI 🚧

This page is currently a work in progress.

We’re actively working to provide accurate and useful content here. Please check back soon for updates
2 changes: 1 addition & 1 deletion docs/controller/index.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# What is the controller?

The controller is a crucial component of the cloud. It manages the nodes and is responsible for overseeing the servers initiated by the cloud.
The controller is a crucial component of the cloud. It manages the nodes and is responsible for overseeing the servers initiated by the cloud.
40 changes: 39 additions & 1 deletion docs/controller/installation/docker.md
Original file line number Diff line number Diff line change
@@ -1 +1,39 @@
# Docker (recommended)
# Docker Installation (Recommended)

The most straightforward method to install the controller is by utilizing a Docker image. Follow the steps below to set it up using Docker Compose:

## Step 1: Create the `docker-compose.yml` File
First, use a text editor to create the `docker-compose.yml` file:
```bash
nano docker-compose.yml
```
Next, add the following content to the file:
```yaml
services:
controller:
image: ghcr.io/httprafa/atomic-cloud:latest
ports:
- "12892:12892"
environment:
- PTERODACTYL=true # Enable Pterodactyl driver installation
volumes:
- ./logs:/app/logs
- ./auth:/app/auth
- ./configs:/app/configs
- ./cloudlets:/app/cloudlets
- ./deployments:/app/deployments
- ./drivers:/app/drivers
```
## Step 2: Start the Container
To start the container, execute the following command:
```bash
docker compose up
```

## Step 3: Retrieve the Admin Token
Upon the initial run of the controller, an admin token will be displayed. This token is required to connect using the CLI. For further details, refer to [How to use the CLI](/cli/).
![First Startup](docker/first_startup.png)

## Step 4: Retrieve the Admin Token Later (If Needed)
In case you lose the token, it can be retrieved from the default admin user's file located in the `auth/users` directory.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 5 additions & 1 deletion docs/controller/installation/normal.md
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
# Normal
# Normal 🚧

This page is currently a work in progress.

We’re actively working to provide accurate and useful content here. Please check back soon for updates
7 changes: 4 additions & 3 deletions docs/features/api.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# Powerful APIs
1. To enable communication between servers, the cloud has a channel system. For example, data can be sent from the game servers to the lobby via channels.
2. It also has API to start servers and move players.
# Robust APIs

1. The cloud infrastructure includes a sophisticated channel system to facilitate seamless communication between servers. For instance, game servers can transmit data to the lobby servers through these channels, ensuring efficient and reliable data flow.
2. Additionally, the API suite provides functionalities to initiate server instances and manage player transitions between servers, enhancing the overall gaming experience and operational efficiency.
17 changes: 11 additions & 6 deletions docs/features/backend.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
# Modular backend
Atomic Cloud has a "driver system" that allows the cloud to use whatever to start the server. Examples of backends are: Pterodactyl, Docker or normal servers (similar to CloudNet).
## What language can i use to write a driver?
-> The plugins use WebAssembly and the WASI standard, so compatibility is very limited. My recommendation is to write the drivers in Rust or use TeaVM for Java.
## Currently existing drivers
1. Pterodactyl (Pelican in the future)
# Modular Backend

Atomic Cloud features a versatile "driver system" that enables the cloud to utilize various methods to initiate the server. Examples of supported backends include Pterodactyl, Docker, and traditional servers (similar to CloudNet).

## Supported Languages for Driver Development

Drivers are implemented using WebAssembly and adhere to the WASI standard, which imposes certain compatibility constraints. It is highly recommended to develop drivers in Rust or utilize TeaVM for Java to ensure optimal performance and compatibility.

## Currently Available Drivers

1. Pterodactyl (with plans to support Pelican in the future)
5 changes: 3 additions & 2 deletions docs/features/cli.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
# CLI Application
In addition, the cloud has a CLI application that, like kubectl, allows you to control the cloud without having to log into an SSH window every time you want to make a small change.
# Command Line Interface (CLI) Application

The cloud platform includes a robust Command Line Interface (CLI) application, similar to `kubectl`, which empowers users to manage and control cloud resources efficiently. This tool eliminates the need for frequent SSH logins for minor adjustments, streamlining your workflow and enhancing productivity.
19 changes: 15 additions & 4 deletions docs/features/no_proxy.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
# Does not use proxies
Atomic Cloud is designed from the ground up with the new Minecraft transfer packet which means there is no need to use proxy software like Velocity or Bungeecord.
# No Proxy Usage

## Why is this better?
The primary benefit of removing a proxy is the *reduced latency* and the ability to easily *split players based on their region*. Furthermore, it is almost impossible to *crash the entire network* using crashing methods as there is no single point of failure. If you manage to crash the lobby, a new one starts on a new random port that must first be found before a new attack can be launched.
Atomic Cloud is engineered from the ground up utilizing the latest Minecraft transfer packet technology, eliminating the need for proxy software such as Velocity or Bungeecord.

## Advantages of No Proxy

### Reduced Latency
By removing the proxy layer, Atomic Cloud significantly reduces latency, providing a smoother and more responsive gaming experience.

### Regional Player Distribution
The absence of a proxy allows for seamless distribution of players based on their geographical regions, enhancing server performance and player experience.

### Enhanced Network Stability
Without a single point of failure, the network becomes more resilient to crashes. In the event of a lobby crash, a new lobby is automatically initiated on a random port, making it difficult for attackers to disrupt the network consistently.

Atomic Cloud's innovative approach ensures a robust, efficient, and secure environment for all players.
14 changes: 13 additions & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
# Welcome

The cloud is still very **early** in development, so some of the features listed below are not available. But they will be available in the first full release.
Welcome to the Atomic Cloud project. Please note that the cloud is currently in its **early** development stages, and you may encounter bugs. If you experience any issues, kindly report them by opening an issue on our [GitHub repository](https://github.com/HttpRafa/atomic-cloud).

## Documentation Status 🚧
This documentation is a work in progress. We apologize for any grammatical errors or incomplete sections you may come across. We welcome contributions from the community. If you wish to help improve the documentation, please feel free to submit a Pull Request.

## Installation
The Atomic Cloud consists of two main components: the Controller and the CLI.

### Controller
The [Controller](controller/installation/docker/) should be installed in an environment that can operate continuously, such as a Raspberry Pi or a cloud server. It is responsible for managing the core functionalities of the cloud system.

### CLI
The [CLI](cli/installation/) is a client application that allows you to interact with the Controller. It can be installed on your local computer, providing you with convenient access to manage the cloud system.
5 changes: 5 additions & 0 deletions docs/wrapper/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Wrapper 🚧

This page is currently a work in progress.

We’re actively working to provide accurate and useful content here. Please check back soon for updates

0 comments on commit 833b2bb

Please sign in to comment.