README: Revise text
This commit is contained in:
parent
d35b26c1c2
commit
4b113b8a20
2 changed files with 117 additions and 139 deletions
38
INSTALL.md
38
INSTALL.md
|
@ -1,37 +1,5 @@
|
|||
# 2024 update - docker setup
|
||||
|
||||
I'll update this file properly soon, but for now, instructions for deployment
|
||||
using docker:
|
||||
|
||||
1. In `create-db.sql`, update the `vervis` DB user's password
|
||||
2. Create and edit `config/settings.yml` based on
|
||||
`config/settings-sample-prod.yml`, remember to set the same DB password here
|
||||
3. In `docker-compose.yml`, update the database superuser password (it's the
|
||||
password for the `postgres` superuser, not `vervis`)
|
||||
4. Create initial state: `./prepare-state.sh`
|
||||
5. Ready for launch! `docker-compose up -d`
|
||||
|
||||
---
|
||||
|
||||
Vervis is still in early development and the build process gets updates once in
|
||||
a while, but this file tries to keep up and list the latest instructions for
|
||||
running a Vervis instance.
|
||||
|
||||
At the time of writing, you can get a running Vervis instance if you follow the
|
||||
steps below.
|
||||
|
||||
UPDATE: There is a binary build you can use instead of building from source. It
|
||||
can be found [here](https://box.angeley.es/nextcloud/s/oWHmQDtWTAfPR4Z). If you
|
||||
use it, verify the download using `sha256sum` and `gpg`, make sure the settings
|
||||
in your `config/settings.yml` (see below) match the downloaded file paths, and run the
|
||||
web app using `./bin/vervis` and not `stack run`. This may be confusing;
|
||||
hopefully I'll make a nicer binary release soon :)
|
||||
|
||||
2022 UPDATE: The binary release is unavailable right now. But a docker image is
|
||||
being prepared. More news soon.
|
||||
|
||||
2024 UPDATE: For production hosting and deployment with Docker, use the
|
||||
`Dockerfile` and `docker-compose.yml` files in this repo's root directory.
|
||||
These are the instructions for manual installation of Vervis. If you're looking
|
||||
for instructions for Docker based deployment, see [README.md](README.md).
|
||||
|
||||
# (1) System libraries
|
||||
|
||||
|
@ -191,7 +159,7 @@ missing in the filesystem. You can ask Vervis to generate missing files, and
|
|||
load the rest as usual:
|
||||
|
||||
$ touch _keyfile_write_missing
|
||||
$ stack run
|
||||
$ stack run -- config/settings.yml
|
||||
|
||||
Browse to `http://localhost:3000` and have fun!
|
||||
|
||||
|
|
218
README.md
218
README.md
|
@ -1,73 +1,57 @@
|
|||
# Vervis
|
||||
Vervis is a **free, open-source federated forge backend server**:
|
||||
|
||||
**Vervis** is a project hosting and management application, with a focus on
|
||||
software projects and decentralization. There is still a lot to do, but if you'd
|
||||
like to try it, a few things more or less work. See below for details.
|
||||
- A platform for hosting and collaboration on software projects
|
||||
- A reference implementation of the [ForgeFed][] forge federation protocol,
|
||||
which is an extension of ActivityPub, the protocol that drives the Fediverse
|
||||
- A decentralized network in which people on one server can seamlessly
|
||||
collaborate with people from another server, including non-Vervis software
|
||||
that implements ForgeFed
|
||||
- Vervis is still in **pre-alpha phase** and not ready for production use!
|
||||
- Provides a temporary static UI, to be replaced by the [Anvil][] frontend
|
||||
client
|
||||
|
||||
Vervis is free software, and is committed to software freedom. Most of its code
|
||||
is in the public domain using the CC0 Public Domain Dedication. The application
|
||||
as a whole however is released under AGPL version 3. For the legal details, see
|
||||
the file `COPYING`. Please use and reuse Vervis for a Good purpose, and share
|
||||
your work too in the same spirit.
|
||||
## Navigation
|
||||
|
||||
## Try It
|
||||
- [Project on Codeberg][Repo]
|
||||
- Support the development via [Liberapay][] or [OpenCollective][]
|
||||
- [Official Docker image][Image]
|
||||
- Demo instances:
|
||||
- [Fig][]
|
||||
- [Grape][]
|
||||
- [Walnut][]
|
||||
|
||||
You can either use the existing instance mentioned below, or install your own
|
||||
instance (see `INSTALL.md`).
|
||||
## Features
|
||||
|
||||
My focus has been on writing the backend side of features and exploring various
|
||||
experimental features. As a result, the user interface and visual design and
|
||||
page styles (i.e. the whole UX and UI) are in a bad shape right now, so I want
|
||||
to write a few little guidelines to help you find your way until this situation
|
||||
improves.
|
||||
The current focus is the classic core features for collaboration:
|
||||
|
||||
There is a Vervis instance running at <https://vervis.peers.community>, and I
|
||||
store my code on it. Feel free to use it and try it, however do please treat it
|
||||
as a demo, as it's not a reliable stable instance for general use yet. If for
|
||||
any reason you do with to keep some code and tickets etc. on it for actual use,
|
||||
please contact me to let me know.
|
||||
- Repositories
|
||||
- Git
|
||||
- Darcs
|
||||
- Issue tracking
|
||||
- Pull requests
|
||||
- And of course federation! Including, eventually, with other forge projects
|
||||
working on implementing federation, such as [Forgejo][] and [GitLab][]
|
||||
|
||||
Here are the steps to make the most out of it at this point (at least at the
|
||||
time of writing, I'll try to keep this little tutorial up to date)!
|
||||
## SSH Client Config
|
||||
|
||||
1. Create an SSH key if you don't have one. Most likely you do, for pushing to
|
||||
your existing repos hosted on your favorite project hosting platform.
|
||||
2. Browse to the instance I linked above, and click *Sign up*. Choose a
|
||||
username and a password. Email address is currently optional on this
|
||||
instance, but it's going to be required soon and used for things like
|
||||
password reset, so please do provide a real email address.
|
||||
3. Log in. Once you log in, the front page will change, and among other things,
|
||||
it will link to your SSH keys. Go there to add your SSH key. In the
|
||||
algorithm box you paste the first part e.g. `ssh-rsa`, and in the second box
|
||||
you paste the long scary part that follows it.
|
||||
4. The front page also links you to repos and projects, you can create a
|
||||
project and open tickets. You can also create a Git or Darcs repo, and
|
||||
optionally associate it with a project. A project can have any number of
|
||||
repos asociated with it, sharing the same ticket tracker. Creating a project
|
||||
or repo may ask you to create a project or repo role; the front page has
|
||||
links for creating these
|
||||
5. You can browse all the projects and repos hosted on the instance.
|
||||
6. Add the following to your `~/.ssh/config` file, or create it if doesn't
|
||||
exist. To be honest I'm not sure it's still required, and haven't tested
|
||||
yet. If you find that this step is unnecessary and everything works without
|
||||
it, let me know :)
|
||||
Vervis comes with its own SSH server, which usually requires some configuration
|
||||
to be set in your SSH client, if you'd like to be able to push and pull repos
|
||||
via SSH.
|
||||
|
||||
Host vervis.peers.community
|
||||
KexAlgorithms +diffie-hellman-group1-sha1
|
||||
ControlMaster no
|
||||
ForwardAgent no
|
||||
ForwardX11 no
|
||||
Ciphers +aes256-cbc
|
||||
MACs +hmac-sha1
|
||||
PubkeyAcceptedKeyTypes +ssh-rsa
|
||||
HostKeyAlgorithms +ssh-rsa
|
||||
Add the following to your `~/.ssh/config` file (or create it if it doesn't
|
||||
exist), replacing the Host with your instance's domain:
|
||||
|
||||
Once you create a repository, it is possible that initially, trying to look at
|
||||
it will give you 404. It should be okay though once you push some commit into
|
||||
it.
|
||||
|
||||
The examples below use Git, but it's exactly the same for Darcs. They are
|
||||
equally supported.
|
||||
```
|
||||
Host fig.fr33domlover.site
|
||||
KexAlgorithms +diffie-hellman-group1-sha1
|
||||
ControlMaster no
|
||||
ForwardAgent no
|
||||
ForwardX11 no
|
||||
Ciphers +aes256-cbc
|
||||
MACs +hmac-sha1
|
||||
PubkeyAcceptedKeyTypes +ssh-rsa
|
||||
HostKeyAlgorithms +ssh-rsa
|
||||
```
|
||||
|
||||
Cloning repositories works over (unauthenticated) HTTPS and (authenticated)
|
||||
SSH.
|
||||
|
@ -86,48 +70,70 @@ If usernames are different:
|
|||
|
||||
$ git clone luke@vervis.peers.community:rjQ3E vervis
|
||||
|
||||
A few more little notes:
|
||||
## Deployment
|
||||
|
||||
- No password reset, it's already implemented but not deployed yet at the time
|
||||
of writing these words
|
||||
- A few more features are available, such as ticket workflows and ticket claim
|
||||
requests, but they are less important so I'm not going into them at this
|
||||
point
|
||||
- Deletion of users, projects and repos may not work
|
||||
- Login session should last for 2 hours after last access
|
||||
- The instance I'm running serves only HTTPS, no plain HTTP
|
||||
- There's no HTTPS push
|
||||
- Merge requests not implemented yet
|
||||
- I started working on federation using ActivityPub, I'll update here when it's
|
||||
ready for trying against ActivityPub clients and servers
|
||||
- Feedback is very very very very very welcome and needed!!! :)
|
||||
### Tech stack
|
||||
|
||||
- **Haskell** programming language
|
||||
- **Yesod** web framework
|
||||
- **PostgreSQL** database for most data
|
||||
- Some data in **SQLite** databases
|
||||
- The work-in-progress [Anvil][] frontend uses:
|
||||
- **Svelte**
|
||||
- **Skeleton**
|
||||
- **Tauri**
|
||||
|
||||
### Requirements
|
||||
|
||||
- **PostgreSQL** 9.5+
|
||||
|
||||
### Docker
|
||||
|
||||
The repository includes deployment configurations for **Docker and
|
||||
docker-compose**.
|
||||
|
||||
1. Install [Docker][]
|
||||
2. In `create-db.sql`, update the `vervis` DB user's password
|
||||
3. Create and edit `config/settings.yml` based on
|
||||
`config/settings-sample-prod.yml`, remember to set the same DB password here
|
||||
4. In `docker-compose.yml`, update the database superuser password (it's the
|
||||
password for the `postgres` superuser, not `vervis`)
|
||||
5. Create initial state: `./prepare-state.sh`
|
||||
6. Ready for launch! `docker-compose up -d`
|
||||
|
||||
```shell
|
||||
sudo apt install docker-compose docker.io
|
||||
vim create-db.sql
|
||||
cp config/settings-sample-prod.yml config/settings.yml
|
||||
vim config/settings.yml
|
||||
vim docker-compose.yml
|
||||
./prepare-state.sh
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
### Manual Installation
|
||||
|
||||
For manual/custom installation steps, see [INSTALL.md](INSTALL.md).
|
||||
|
||||
## Development
|
||||
|
||||
To prepare a development environment, follow the instructions in
|
||||
[INSTALL.md](INSTALL.md).
|
||||
|
||||
## Federation & API
|
||||
|
||||
See `FEDERATION.md` & `API.md`.
|
||||
|
||||
## Installation
|
||||
## Contributing
|
||||
|
||||
See `INSTALL.md`.
|
||||
Mastodon is **free, open-source software** licensed under **AGPLv3**.
|
||||
|
||||
## Using
|
||||
You can open issues for bugs you've found or features you think are missing.
|
||||
You can also submit pull requests to this repository.
|
||||
|
||||
See the .cabal file for more info and link to project website and version
|
||||
control.
|
||||
**Matrix room**: [#general-forgefed:matrix.batsense.net][Matrix]
|
||||
|
||||
The official download location is the Darcs repository:
|
||||
|
||||
<https://vervis.peers.community/repos/rjQ3E>
|
||||
|
||||
There is a backup repo, not always up to date though, at:
|
||||
|
||||
<https://codeberg.org/forgefed/vervis>
|
||||
|
||||
See the file `INSTALL.md` for a detailed usage and deployment guide. The file
|
||||
`ChangeLog` explains how to see the history log of the changes done in the
|
||||
code. `NEWS.md` provides a friendly overview of the changes for each release.
|
||||
|
||||
## Finding your way in the codebase
|
||||
### Finding your way in the codebase
|
||||
|
||||
Folders:
|
||||
|
||||
|
@ -190,19 +196,9 @@ Haskell modules in `src`:
|
|||
- `Vervis.Client`
|
||||
- `Vervis.Ssh`
|
||||
|
||||
## Reporting Bugs and Suggesting Features
|
||||
## License
|
||||
|
||||
If you found a bug, or you have an idea, a feature request or a wishlist item,
|
||||
open a ticket for it! Even if you're going to implement something or try to
|
||||
solve it.
|
||||
|
||||
If you're going to implement some feature or fix some bug you found, **start by
|
||||
opening a ticket**
|
||||
[here](https://codeberg.org/ForgeFed/Vervis/issues) so that other
|
||||
people will know which features are being developed and who does what.
|
||||
|
||||
UPDATE: The ticket tracker is temporarily unavailable. You can instead contact
|
||||
[Pere](https://perelev.site) to report issues and to coordinate work.
|
||||
AGPLv3+. See `COPYING`.
|
||||
|
||||
## Funding
|
||||
|
||||
|
@ -214,3 +210,17 @@ This project is funded through the
|
|||
|
||||
[<img src="https://nlnet.nl/logo/banner.png" alt="NLnet foundation logo" width="20%" />](https://nlnet.nl)
|
||||
[<img src="https://nlnet.nl/image/logos/NGI0Entrust_tag.svg" alt="NGI Zero Entrust Logo" width="20%" />](https://nlnet.nl/entrust)
|
||||
|
||||
[Anvil]: https://codeberg.org/Anvil/Anvil
|
||||
[Docker]: https://docs.docker.com
|
||||
[ForgeFed]: https://forgefed.org
|
||||
[Forgejo]: https://forgejo.org
|
||||
[GitLab]: https://gitlab.com
|
||||
[Image]: https://codeberg.org/ForgeFed/Vervis/packages
|
||||
[Liberapay]: https://liberapay.com/ForgeFed
|
||||
[Matrix]: https://matrix.to/#/#general-forgefed:matrix.batsense.net
|
||||
[OpenCollective]: https://opencollective.com/forgefed
|
||||
[Repo]: https://codeberg.org/ForgeFed/Vervis)
|
||||
[fig]: https://fig.fr33domlover.site
|
||||
[grape]: https://grape.fr33domlover.site
|
||||
[walnut]: https://walnut.fr33domlover.site
|
||||
|
|
Loading…
Reference in a new issue