Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Design Document for Forgejo / Codey #129

Draft
wants to merge 10 commits into
base: master
Choose a base branch
from
Draft

Design Document for Forgejo / Codey #129

wants to merge 10 commits into from

Conversation

tobru
Copy link
Member

@tobru tobru commented Dec 18, 2024

This document describes the technical details how the Forgejo service for "Forgejo by VSHN" and Codey is implemented.

Copy link
Contributor

@zugao zugao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the reason behind not making Codey VSHN managed? What am I missing?

@tobru
Copy link
Member Author

tobru commented Dec 19, 2024

What is the reason behind not making Codey VSHN managed? What am I missing?

See #129 (comment) - it should answer that question as well.

Copy link
Member

@wejdross wejdross left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have some doubts.

From what I've read we want to invest time to create a service without crucial features from developers point of view (ssh, runners) and without possibility to control what happens (monitoring, alerting of litestream, sqlite,2q as an example) and under 2 different names (2 separate, but redundant CRDs to maintain).

Also, I don't think I understand this split between Forgejo and Codey, it's really confusing, not how, but why.

To begin with, we're using SQLite as the database backend, with the WAL mode.

Once this is not enough anymore, we'll explore the options to use PostgreSQL as the backend and potentially migrate instances there should it be required.
Migration to a different database can be done with the https://forgejo.org/docs/latest/admin/command-line/#dump[`forgejo dump`] command.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like this part as well, manual migrations can always go wrong and we will be forced to respond to support tickets OR to write some migration tool - which also seems like an over engineering to me. Why can't we just start with our PostgreSQL - we have backup, restore, monitoring, alerting, extensions - everything we need to successfully run this service.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SQLite performs impressively well!

The aim is to start as lightweight as possible (in terms of resource usage and reduced complexity - also financial-wise). Initially, we might limit the offering to Codey plans "mini" and "small" which will be SQLite and "medium" and larger will then use PostgreSQL. Though, this still doesn't solve the migration question, for example if someone wants to upgrade from "small" to "medium". Right now, I believe this is a problem to solve when we have it, not doing preliminary optimization.

For Forgejo by VSHN we could have PostgreSQL by default, I'll give that a second thought.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants