2022-08-24 20:31:44 +00:00
# Stack Orchestrator
2022-08-22 02:26:55 +00:00
2023-01-10 00:44:39 +00:00
Stack Orchestrator allows building and deployment of a Laconic Stack on a single machine with minimial prerequisites. It is a Python3 CLI tool that runs on any OS with Python3 and Docker. The following diagram summarizes the relevant repositories in the Laconic Stack - and the relationship to Stack Orchestrator.
2022-08-24 20:31:44 +00:00
2023-01-10 00:44:39 +00:00
![The Stack ](/docs/images/laconic-stack.png )
## Install
2022-08-24 20:48:55 +00:00
2023-08-15 17:49:17 +00:00
**To get started quickly** on a fresh Ubuntu instance (e.g, Digital Ocean); [try this script ](./scripts/quick-install-linux.sh ). **WARNING:** always review scripts prior to running them so that you know what is happening on your machine.
2023-04-06 23:39:12 +00:00
For any other installation, follow along below and **adapt these instructions based on the specifics of your system.**
2022-08-24 20:48:55 +00:00
Ensure that the following are already installed:
2023-03-21 01:36:05 +00:00
- [Python3 ](https://wiki.python.org/moin/BeginnersGuide/Download ): `python3 --version` >= `3.8.10` (the Python3 shipped in Ubuntu 20+ is good to go)
2023-01-20 16:35:57 +00:00
- [Docker ](https://docs.docker.com/get-docker/ ): `docker --version` >= `20.10.21`
2023-03-24 12:56:01 +00:00
- [jq ](https://stedolan.github.io/jq/download/ ): `jq --version` >= `1.5`
2023-09-27 21:07:30 +00:00
- [git ](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git ): `git --version` >= `2.10.3`
2023-01-10 00:44:39 +00:00
2023-03-21 01:36:05 +00:00
Note: if installing docker-compose via package manager on Linux (as opposed to Docker Desktop), you must [install the plugin ](https://docs.docker.com/compose/install/linux/#install-the-plugin-manually ), e.g. :
2023-01-10 00:44:39 +00:00
```bash
mkdir -p ~/.docker/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.11.2/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
```
2023-03-21 01:36:05 +00:00
Next decide on a directory where you would like to put the stack-orchestrator program. Typically this would be
a "user" binary directory such as `~/bin` or perhaps `/usr/local/laconic` or possibly just the current working directory.
2024-02-06 22:42:44 +00:00
Now, having selected that directory, download the latest release from [this page ](https://git.vdb.to/cerc-io/stack-orchestrator/tags ) into it (we're using `~/bin` below for concreteness but edit to suit if you selected a different directory). Also be sure that the destination directory exists and is writable:
2023-01-10 00:44:39 +00:00
```bash
2024-02-06 22:42:44 +00:00
curl -L -o ~/bin/laconic-so https://git.vdb.to/cerc-io/stack-orchestrator/releases/download/latest/laconic-so
2023-01-10 00:44:39 +00:00
```
2023-03-21 01:36:05 +00:00
Give it execute permissions:
2023-04-27 17:15:39 +00:00
2023-01-10 00:44:39 +00:00
```bash
chmod +x ~/bin/laconic-so
```
Ensure `laconic-so` is on the [`PATH` ](https://unix.stackexchange.com/a/26059 )
2023-04-27 17:15:39 +00:00
Verify operation (your version will probably be different, just check here that you see some version output and not an error):
2023-01-10 00:44:39 +00:00
```
2023-03-21 01:36:05 +00:00
laconic-so version
2023-04-27 17:15:39 +00:00
Version: 1.1.0-7a607c2-202304260513
2023-01-10 00:44:39 +00:00
```
2023-09-27 21:52:08 +00:00
Save the distribution url to `~/.laconic-so/config.yml` :
```bash
mkdir ~/.laconic-so
2024-02-06 22:42:44 +00:00
echo "distribution-url: https://git.vdb.to/cerc-io/stack-orchestrator/releases/download/latest/laconic-so" > ~/.laconic-so/config.yml
2023-09-27 21:52:08 +00:00
```
2022-08-24 20:31:44 +00:00
2023-09-27 20:57:48 +00:00
### Update
If Stack Orchestrator was installed using the process described above, it is able to subsequently self-update to the current latest version by running:
```bash
laconic-so update
```
2022-08-24 20:31:44 +00:00
## Usage
2022-09-29 19:56:55 +00:00
2023-11-07 07:06:55 +00:00
The various [stacks ](/stack_orchestrator/data/stacks ) each contain instructions for running different stacks based on your use case. For example:
2023-01-10 00:44:39 +00:00
2023-11-07 07:06:55 +00:00
- [self-hosted Gitea ](/stack_orchestrator/data/stacks/build-support )
- [an Optimism Fixturenet ](/stack_orchestrator/data/stacks/fixturenet-optimism )
- [laconicd with console and CLI ](stack_orchestrator/data/stacks/fixturenet-laconic-loaded )
- [kubo (IPFS) ](stack_orchestrator/data/stacks/kubo )
2023-01-10 00:44:39 +00:00
## Contributing
2023-01-20 16:35:57 +00:00
See the [CONTRIBUTING.md ](/docs/CONTRIBUTING.md ) for developer mode install.
2022-09-29 19:56:55 +00:00
2022-09-27 21:40:00 +00:00
## Platform Support
2023-01-10 00:44:39 +00:00
2022-09-27 21:40:00 +00:00
Native aarm64 is _not_ currently supported. x64 emulation on ARM64 macos should work (not yet tested).
2022-08-24 20:31:44 +00:00
2023-04-10 20:39:28 +00:00