diff --git a/docs/api/index.md b/docs/api/index.md new file mode 100644 index 0000000..5552f7a --- /dev/null +++ b/docs/api/index.md @@ -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. \ No newline at end of file diff --git a/docs/api/options/jvm.md b/docs/api/options/jvm.md new file mode 100644 index 0000000..e4a549a --- /dev/null +++ b/docs/api/options/jvm.md @@ -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 + + io.atomic.cloud + api + 0.1.0-SNAPSHOT + +``` \ No newline at end of file diff --git a/docs/cli/index.md b/docs/cli/index.md index e69de29..863c086 100644 --- a/docs/cli/index.md +++ b/docs/cli/index.md @@ -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 diff --git a/docs/controller/index.md b/docs/controller/index.md index 8be6857..1a69b3a 100644 --- a/docs/controller/index.md +++ b/docs/controller/index.md @@ -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. \ No newline at end of file +The controller is a crucial component of the cloud. It manages the nodes and is responsible for overseeing the servers initiated by the cloud. diff --git a/docs/controller/installation/docker.md b/docs/controller/installation/docker.md index 9398f79..459be6c 100644 --- a/docs/controller/installation/docker.md +++ b/docs/controller/installation/docker.md @@ -1 +1,39 @@ -# Docker (recommended) \ No newline at end of file +# 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. \ No newline at end of file diff --git a/docs/controller/installation/docker/first_startup.png b/docs/controller/installation/docker/first_startup.png new file mode 100644 index 0000000..a59a44e Binary files /dev/null and b/docs/controller/installation/docker/first_startup.png differ diff --git a/docs/controller/installation/normal.md b/docs/controller/installation/normal.md index 63428cc..6220353 100644 --- a/docs/controller/installation/normal.md +++ b/docs/controller/installation/normal.md @@ -1 +1,5 @@ -# Normal \ No newline at end of file +# 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 diff --git a/docs/features/api.md b/docs/features/api.md index ec6aa86..4c8665e 100644 --- a/docs/features/api.md +++ b/docs/features/api.md @@ -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. \ No newline at end of file +# 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. \ No newline at end of file diff --git a/docs/features/backend.md b/docs/features/backend.md index 653b232..2630e55 100644 --- a/docs/features/backend.md +++ b/docs/features/backend.md @@ -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) \ No newline at end of file +# 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) \ No newline at end of file diff --git a/docs/features/cli.md b/docs/features/cli.md index 53206f4..6a9e778 100644 --- a/docs/features/cli.md +++ b/docs/features/cli.md @@ -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. \ No newline at end of file +# 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. \ No newline at end of file diff --git a/docs/features/no_proxy.md b/docs/features/no_proxy.md index 272b160..0f33ed3 100644 --- a/docs/features/no_proxy.md +++ b/docs/features/no_proxy.md @@ -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. \ No newline at end of file +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. \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index d9592bc..4fb28b0 100644 --- a/docs/index.md +++ b/docs/index.md @@ -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. \ No newline at end of file +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. \ No newline at end of file diff --git a/docs/wrapper/index.md b/docs/wrapper/index.md new file mode 100644 index 0000000..039a9ee --- /dev/null +++ b/docs/wrapper/index.md @@ -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