143 lines
6.1 KiB
Markdown
Executable File
143 lines
6.1 KiB
Markdown
Executable File
# todo
|
|
|
|
The tilde.center (**~center**) project consists of three core elements:
|
|
|
|
* Decentralization
|
|
* Federation
|
|
* Home-brewed open source projects (HBOSP)
|
|
|
|
The "big picture" goal right now is to create the a decentralized tilde server
|
|
that can be deployed across other servers to provide the same experience for
|
|
it's users. To make this possible while keeping up with home-brewed open source
|
|
projects, there is a lot to be done. That is where this repository comes in.
|
|
|
|
Below are projects or ideas for ~center projects along with users working on
|
|
them, current status (todo, doing, done, inactive), and priority of the project
|
|
(high, medium, low). If you are submitting an idea without wanting to take
|
|
ownership of the project, specify the user(s) as "-". For project ideas with
|
|
more than one user working on it, list the users in comma-separated format
|
|
(e.g. if alice and bob are working on the same project then "alice, bob" would
|
|
be listed under Contributors).
|
|
|
|
Adding project ideas, enlistment to a project idea, or changing the status can
|
|
be done through a [pull request](https://tildegit.org/center/todo/pulls).
|
|
|
|
| Project / Idea | Contributors | Status | Priority |
|
|
| -------------- | ------------ | ------ | -------- |
|
|
| database | aewens | doing | medium-high |
|
|
| ldap-users | aewens | doing | high |
|
|
| dispatcher | - | todo | medium-high |
|
|
| safe-center | - | todo | low |
|
|
| concepts | aewens | inactive | medium |
|
|
| governance | aewens | todo | medium |
|
|
| directory | aewens | doing | medium |
|
|
| skel | aewens | inactive | medium |
|
|
| git-server | aewens | todo | medium |
|
|
| wiki | - | todo | high |
|
|
| motd | aewens | inactive | low |
|
|
| intranet | - | todo | low |
|
|
| search-engine | - | todo | low |
|
|
| user-scripts | aewens | inactive | medium |
|
|
| abots | aewens | doing | medium |
|
|
| ceps | - | todo | medium |
|
|
| userdb | - | todo | medium |
|
|
| ssh-service | - | todo | low |
|
|
| center-client | - | todo | low |
|
|
| jump-list | - | todo | low |
|
|
|
|
Use this space below to go into more detail about the specifics of the project.
|
|
As well, if the project exists you can link to it's repository here.
|
|
|
|
## [database](https://tildegit.org/center/database)
|
|
The SQLite database and schemas that will be utilized by ~center. Will maintain
|
|
a public and private database, the former will have its changes synced to the
|
|
peer nodes and the latter will be unique to the server.
|
|
|
|
## [ldap-users](https://tildegit.org/center/ldap-users)
|
|
OpenLDAP setup and user management tools for generating accounts that can later
|
|
be distributed and utilized by other ~center services for single sign on (SSO)
|
|
purposes (will need to be compatible with **database**).
|
|
|
|
## dispatcher
|
|
TCP server to communicate with peer ~center servers for handling server
|
|
federation and synchronizing data (will later need to adhere to RFC
|
|
specifications agreed upon by users).
|
|
|
|
## safe-center
|
|
Allows for users to share their local storage in exchange for utilizing part of
|
|
the greater whole of shared storage in the ~center network.
|
|
|
|
## [concepts](https://tildegit.org/center/concepts)
|
|
A more detailed roadmap for the development of the ~center project along with
|
|
general concepts for the ~center architecture.
|
|
|
|
## [governance](https://tildegit.org/center/governance)
|
|
A decentralized system that requires decision making by an individual is not
|
|
very decentralized. This will outline the governance model for ~center along
|
|
with any scripts that will be used to assisting on voting on decisions across
|
|
peer servers.
|
|
|
|
## [directory](https://tildegit.org/center/directory)
|
|
To aid in the portability of deploying and distributing the setup of ~center
|
|
servers, the bulk of it's files and directories will be stored under a /center
|
|
directory.
|
|
|
|
## [skel](https://tildegit.org/center/skel)
|
|
The default directories and files in user's $HOME for ~center
|
|
|
|
## git-server
|
|
Currently, these projects are hosted on tildegit.org, but this is a project
|
|
operated outside of the ~center project. The git-server would be a HBOSP that
|
|
can authenticate against the LDAP database and work with the existing git
|
|
command.
|
|
|
|
## wiki
|
|
Given the nature of the project, having a place to assist in on-loading new
|
|
users and future explanations of projects, goals, tutorials, etc would be very
|
|
useful and needed.
|
|
|
|
## [motd](https://tildegit.org/center/motd)
|
|
Scripts that handle the message of the day for the server
|
|
|
|
## intranet
|
|
Adds local_html to $HOME for users to write to a network only viewable from the
|
|
server and not exposed outside the network. Presumably for ~center-centric
|
|
documents and web pages.
|
|
|
|
## search-engine
|
|
A search engine you can trust because it is home-made by your fellow users, not
|
|
something run by a company wanting to harvest your data for who knows what.
|
|
Should also have a version for the intranet project.
|
|
|
|
## [user-scripts](https://tildegit.org/center/user-scripts)
|
|
Handles the system for users to submit their own scripts to /center/bin
|
|
|
|
## [abots](https://tildegit.org/center/abots)
|
|
"A Bunch Of Tiny Scripts", or ABOTS, for shared library code
|
|
|
|
## ceps
|
|
The Center Enhancement Proposals (CEPs) system for prosing changes to the
|
|
[Tilde Center Specification](https://rfc.tildeverse.org/rfc.php?number=3).
|
|
These will essentially be RFCs for the ~center project.
|
|
|
|
## userdb
|
|
Replacement to **ldap-users**. Would be an SQL database compatible with
|
|
**database** and provide a UUID for users along with integrating them into
|
|
/etc/{passwd,shadow,group} while leaving existing users on the system as-is.
|
|
|
|
## ssh-service
|
|
A passwordless service accessible via SSH that would use ForceCommand to provide
|
|
an service for users or other services. Will primarily be used to provide the
|
|
username on the server that maps to the UUID of the user as well as proving a
|
|
list of peer servers.
|
|
|
|
## center-client
|
|
A script users can use to access peer servers. It will keep the UUID on-hand so
|
|
that it can query the list of servers and obtain the user's username on the
|
|
server automatically. All a user would need to do is select a peer server and
|
|
it will log them into it for them.
|
|
|
|
## jump-list
|
|
Given the list of peer servers, generate SSH jump configurations to those nodes
|
|
to allow users to easily login to other peer servers that share their username.
|