https://github.com/fission-codes/fission-server
https://github.com/fission-codes/fission-server
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/fission-codes/fission-server
- Owner: fission-codes
- License: apache-2.0
- Created: 2023-01-26T15:31:53.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-06-10T14:06:33.000Z (about 2 years ago)
- Last Synced: 2025-04-03T04:56:18.401Z (about 1 year ago)
- Language: Rust
- Size: 1.1 MB
- Stars: 10
- Watchers: 6
- Forks: 1
- Open Issues: 39
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
⚠️ Work in progress ⚠️
# Fission Server (& CLI)
This repository contains an implementation of the fission webserver, an implementation of a CLI that allows interacting with the webserver.
## Overview
- [Server design documentation](./design/README.md)
- [Server API documentation](./design/api.md)
- [`fission-server`](./fission-server/README.md): Contains the webserver implementation and two binaries, one for running the webserver, one for generating an openAPI document.
- [`fission-cli`](./fission-cli/README.md): Contains the CLI implementation, its binary is the CLI.
- [`fission-core`](./fission-core/README.md): Contains code that can be shared between CLI and server, such as request/response types.
The dependencies between the crates in this workspace look like this:
```mermaid
flowchart TD
fission-server --> fission-core
fission-cli --> fission-core
```
## Running the Webserver
### Using nix
```sh
nix run . -- --config-path ./fission-server/config/settings.toml
```
### Using pre-installed cargo & postgres
```sh
$ pg_ctl -o '-k /tmp' -D "./.pg" start
$ cargo run -p fission-server -- --config-path ./fission-server/config/settings.toml
```
## Development
You can drop into a development shell, if you have nix installed via
```sh
$ nix develop
```
from the project root.
You can re-build and re-run the webserver on every file change via `cargo watch`:
```sh
$ cargo watch -c -s "cargo run -p fission-server -- -c ./fission-server/config/settings.toml"
```
## Production
In production, you may want to enable the `--no-colors` flag on the executable.
All CLI flags are also available as environment-variables, so `FISSION_SERVER__NO_COLORS=true` and `FISSION_SERVER__CONFIG_PATH="./prod-settings.toml"` or even values from the `settings.toml` file itself. Double underscores are used as a separator between settings keys, because these can contain underscores themselves.
You'll also want to set `server.environment = "prod"` in `settings.toml`, and with that you'll need to provide a valid `mailgun.api_key` (can also be set as the environment variable `FISSION_SERVER__MAILGUN__API_KEY=...`).