com.sandpolis.core.ipc

The inter-process communications library module

License

License

GroupId

GroupId

com.sandpolis
ArtifactId

ArtifactId

sandpolis-core-ipc
Last Version

Last Version

6.1.0
Release Date

Release Date

Type

Type

module
Description

Description

com.sandpolis.core.ipc
The inter-process communications library module
Project URL

Project URL

https://github.com/Subterranean-Security/Sandpolis
Source Code Management

Source Code Management

https://github.com/Subterranean-Security/Sandpolis

Download sandpolis-core-ipc

Dependencies

runtime (5)

Group / Artifact Type Version
com.sandpolis : sandpolis-core-instance jar 6.1.0
com.sandpolis : sandpolis-core-proto jar 6.1.0
com.sandpolis : sandpolis-core-soi jar 6.1.0
com.google.guava : guava jar 28.2-jre
org.slf4j : slf4j-api jar 1.7.30

Project Modules

There are no modules declared in this project.

GitHub release Build Status Build status

Sandpolis is a remote administration platform for servers, desktop computers, embedded devices, and anything in-between. Although designed primarily for sysadmins and enthusiasts, it should also be usable by the average hominin capable of reaching this page.

This project is unfinished and should only be used in a secure testing environment!

Introduction

Sandpolis is a real-time distributed application composed of three types of components:

  • an agent installed on remote systems that carries out tasks on behalf of users
  • a client application that users interact with
  • a server that facilitates communication between instances in the network

In a typical setup, the server is hosted by a cloud provider like AWS or GCP, the client is installed on the administrator's machine, and the agent is installed on a large number of machines that need to be monitored/controlled.

Plugins

Sandpolis supports plugins as a first-class feature. In fact, all end-user functionality in Sandpolis (file transfers, remote desktop, etc) is implemented through plugins. Third-party plugins can also be installed, but must be signed with a trusted code-signing certificate.

Widely compatible

Sandpolis works on many different operating systems and CPU architectures thanks to the JVM. It can also be used to monitor systems with minimal resources via the native agent written in C++.

Low latency, high concurrency

Sandpolis is a real-time application which leads to a more satisfying user experience. Data is available right away and operations happen immediately.

To scale effectively, Sandpolis can utilize multiple servers in the same network which enables a large number of total concurrent connections from agents.

Uncompromising on performance and security

Every reasonable measure has been taken to ensure Sandpolis is both secure and performant. When it's not possible to achieve every desirable design objective, these two are prioritized.

Installation

  • Windows/MacOS/Linux

    • Install Java 14 or later
    • Download the latest Sandpolis Installer for your operating system
    • Start the installer by running java -jar SandpolisInstaller-*.jar
  • Arch Linux

    • Download the development package or the stable package from the AUR
    • Extract and install with makepkg -si
    • The server daemon can be started with systemctl start sandpolisd
  • Docker

    • The server can be installed from DockerHub: docker run -d -p 8768:8768 --name=sandpolis --restart=always sandpolis/sandpolis-server

Building and Testing

The project is divided into groups of instance modules, library modules, and plugin modules:

Location Description
/ Instance modules
/module Common library modules
/plugin Sandpolis plugins
/gradle Gradle plugins

Building the entire project is as easy as running ./gradlew assemble from the project's root directory. This will output (almost ready-to-run) executables into the build/libs directories of each instance module. Running the unit tests can be accomplished with ./gradew test.

Versions

Version
6.1.0
6.0.0
5.1.2
5.1.1
5.1.0
5.0.2
5.0.1
5.0.0