2023-12-08 19:27:00 +01:00
|
|
|
## About
|
|
|
|
|
2024-03-11 18:45:11 +01:00
|
|
|
Twenty helps you manage and plan your open source projects with a
|
|
|
|
standalone web application that's designed to run on localhost or
|
|
|
|
within your local network. It is both easy to use, and easy to install.
|
2023-12-08 19:27:00 +01:00
|
|
|
|
2023-12-22 22:23:10 +01:00
|
|
|
## Features
|
|
|
|
|
2024-01-13 22:16:08 +01:00
|
|
|
* Provides a command-line utility to start / stop a web server.
|
|
|
|
* Connect / disconnect a project from the command line.
|
2024-03-27 22:18:58 +01:00
|
|
|
* Designed to work offline. Binds to `http://localhost:2020` by default.
|
|
|
|
* Lightweight stack with Ruby and SQLite3 being the primary runtime dependencies.
|
2024-01-13 22:16:08 +01:00
|
|
|
* Easy to install, easy to use.
|
2024-03-27 22:18:58 +01:00
|
|
|
* Optional: nginx support via an unix socket.
|
2023-12-22 22:23:10 +01:00
|
|
|
|
2024-01-14 22:48:27 +01:00
|
|
|
## Design
|
|
|
|
|
2024-03-27 22:18:58 +01:00
|
|
|
* The server is powered by [rack](https://github.com/rack/rack) and [puma](https://github.com/puma/puma):
|
2024-03-11 18:45:11 +01:00
|
|
|
- Accepts GraphQL requests at `/graphql`.
|
|
|
|
- Serves client (HTML, JS, CSS).
|
|
|
|
- Dependencies: ActiveRecord, SQLite3, ruby-graphql.
|
2024-01-14 22:48:27 +01:00
|
|
|
* The client is a statically compiled [nanoc](https://github.com/nanoc/nanoc) website:
|
2024-03-11 18:45:11 +01:00
|
|
|
- Dependencies: webpack, typescript, react.
|
2024-01-14 22:48:27 +01:00
|
|
|
* The CLI controls the web server:
|
2024-03-11 18:45:11 +01:00
|
|
|
- Start / stop web server.
|
|
|
|
- Run database migrations.
|
|
|
|
- Run developer console.
|
2024-01-14 22:48:27 +01:00
|
|
|
* Each component (server, client, cli) are separate packages
|
|
|
|
in a monorepo.
|
|
|
|
* Easy to distribute as a RubyGem.
|
|
|
|
|
2023-12-08 19:27:00 +01:00
|
|
|
## Usage
|
|
|
|
|
2024-03-11 18:45:11 +01:00
|
|
|
**CLI**
|
2024-02-09 23:56:20 +01:00
|
|
|
|
2024-03-11 18:45:11 +01:00
|
|
|
Usage: twenty COMMAND [OPTIONS]
|
2023-12-08 19:27:00 +01:00
|
|
|
|
|
|
|
Commands:
|
|
|
|
up Start the twenty web server.
|
|
|
|
down Stop the twenty web server.
|
|
|
|
connect Connect a project to twenty.
|
|
|
|
disconnect Disconnect a project from twenty.
|
2023-12-23 20:23:55 +01:00
|
|
|
migrate Migrate the database.
|
2023-12-26 03:12:57 +01:00
|
|
|
console Start the twenty developer console.
|
2023-12-08 19:27:00 +01:00
|
|
|
|
|
|
|
## Install
|
|
|
|
|
2024-03-12 09:10:02 +01:00
|
|
|
Twenty is distributed as a RubyGem.
|
|
|
|
|
2024-02-08 00:10:53 +01:00
|
|
|
$ gem install twenty.rb
|
2023-12-08 19:27:00 +01:00
|
|
|
|
2024-03-12 09:10:02 +01:00
|
|
|
## Sources
|
|
|
|
|
|
|
|
* [GitHub](https://github.com/0x1eef/twenty)
|
|
|
|
* [GitLab](https://gitlab.com/0x1eef/twenty)
|
|
|
|
|
2023-12-08 19:27:00 +01:00
|
|
|
## License
|
|
|
|
|
|
|
|
[BSD Zero Clause](https://choosealicense.com/licenses/0bsd/).
|
|
|
|
<br>
|
|
|
|
See [LICENSE](./LICENSE)
|