Addition of community instances (#5)
Merged
Commits were merged into target branch
Unknown opened 1 year ago

This idea was suggested about a month ago by me within the server repository, and I have finally decided to give it a go and see how it goes over a few months.

I have added community hosting to the community section of the wiki, and also made sure to put cautions in stating the OneDev developer(s) are not resposible for the community hosted instances. I have also added a tip at the top of Quickstart page to state that if someone does not want to run their own instance that they can pick a community instance.

The only thing I am not sure about is if you (Robin) do not want to be involved in this, how will the community section remain clean and maintained? I am happy to take it over (seen as I am the one which added it to support AUR packages etc) but if instances are permitted to be added, someone needs to investigate and test them before they are added to the list, and I doubt you want to waste your time doing that?

Any ideas about the issue above would be useful. But for now please review the commit and tell me what you think so far :)

New commits added 1 year ago
New commits added 1 year ago
Robin Shen commented 1 year ago

Checked the update, and I think there is no need to add tips on quickstart page to mention community instance. The quickstart page should be very straightforward without too much options. We have a community section on left side afterwards.

Unknown commented 1 year ago

Hm, but that only mentions the community section, currently OneDev is advertised as "self host only". If you want it removed maybe add "Instances" option to the README.md on onedev/server.

I only realised half of the guides there when I was contributing, a lot of people aren't going to go looking, they will take one look and if it is not simple to use they will leave, the issue with user experience development 🤮

Unknown commented 1 year ago

Hence why I added a "tip" at the top of the quickstart saying you can either self host, OR you can go look at community provided instances (hopefully I wont be the only one in the future)

Robin Shen commented 1 year ago

Hmm.. That is fine. Users seeing this tip natually thinks they can finish the quickstart tutorial on community instance. So maybe we should add a separate quickstart using community instance, and adjust some steps of the quickstart, such as user needs to register an account first, etc.

Unknown commented 1 year ago

@robin I recommend renaming the quickstart anyways, it is quite unconventional and I did not understand what it was for before I read it. Most people call it "Getting Started" or "Introduction".

An introduction page giving people the options they have would be useful. I also would like to add to the ArchWiki giving some links to cheapish hosts which are sufficient for OneDev to allow people to know what hosts to use (maybe even use an affiliate link if a hosting provider wants to partner with OneDev, it is one of the ways some OSS projects get funding, of course this would be up to you to do if you wished, because you are the developer).

Currently I have not seen any page anywhere in the OneDev ecosystem actually explaining the choices, you got the README.md in onedev/server which is showing off the features onedev provides, but when you get to the wiki you get a quickstart guide, which speaks about docker and quickly deploying your own instance, nothing actually outlines the options you got unless you look deeper into the documentation.

Unknown commented 1 year ago

You could have an introduction/landing page in the wiki, which branches off to all the other pages and explains the sections you should look at, for example if you want to self host, go look at the self hosting quickstart, otherwise go look at the community section.

Unknown commented 1 year ago

Also I was thinking the community section could be expanded to include places to discuss and ask the community for help, instead of hoarding you with discussion issues about small issues, unless of course you enjoy 10 issues a day asking small questions.

Unknown commented 1 year ago

Personally being a OSS advocate I would go for IRC or XMPP, but I assume most people would go for Discord for communities (also discord is SAAS so additional hosting wouldn't be required)

Robin Shen commented 1 year ago

It is very common for a project has "quick start". Searching this on google gets "58,800,000". It does not mean to set up a production instance, just give a quick demo showcase the product. So it should be as simple/quick as possible, without too much options. Just give user a feel.

For detailed info, such as machine spec, different installation flavors, there are the formal installation guide.

Unknown commented 1 year ago

Hm, I got an idea, I will quickly implement it into the wiki and then commit it and see what you think.

New commits added 1 year ago
Unknown commented 1 year ago

@robin Please see the latest commit, I have reshuffled the pages and added a friendly introduction page (if it is too friendly please let me know and I will tone it down a little). I have reverted the quickstart guide back to what it was before, and I have explained briefly the two options in the introduction page and linked the quickstart guide in so that users can still get started just as quickly as before.

The root url now points to the introduction instead of the quickstart guide.

Unknown commented 1 year ago

If you got better ideas of how to do this, please let me know and I will implement it.

Robin Shen commented 1 year ago

This is much better now. For the introduction page, I'd suggest to put host OneDev yourself as the first option which is the primary purpose of this project, and community options not supported by me should always be used as alternative/second option.

Robin Shen commented 1 year ago

Also want to check do you have backup plan for your community OneDev instance? A public faced production server needs long term committment and it might cost more than a single machine... This is why I can not afford to do that right now.

Unknown commented 1 year ago

Oh right I totally disregarded the order in the introduction. Also I really like the introduction, I don't know why its just so friendly!

Unknown commented 1 year ago

@robin as of now, no, I doubt it will get much use in the slightest, but don't worry, if it needs to scale I will let it scale, and plus if worst comes to worst I will give long term warning before shutting it down to allow people to migrate.

My hope is for there to be a community of onedev instances so that one instance isn't drained of all their resources etc.

Unknown commented 1 year ago

Why does syncing a repository through OneDev so slow and resource intensive, git clone uses nowhere close to this amount of resources, is this jgit being extremely inefficient?

Robin Shen commented 1 year ago

@polarian It is a really nice introduction. I like it and can feel author's kindness very much.

I also think that it will not get much attention now. But a public production instance means committment even if there is only one project. You can of course do that later when there are real projects hosted.

Robin Shen commented 1 year ago

OneDev calls git to do syncing. Jgit is not used for resource intensive operations like push/pull. Let me know how to reproduce and I will check what is the problem.

Unknown commented 1 year ago

Jgit wraps the git C api?

Unknown commented 1 year ago

git clone on my system normally takes about 1 minute depending on bandwidth, through onedev it took 21 minutes https://onedev.polarian.dev/onedev/server/~builds/1

Robin Shen commented 1 year ago

JGit is a pure Java implementation. OneDev calls git command line directly for push/pull operations.

Robin Shen commented 1 year ago

I do not have permission to see anything in the link you provided.

Unknown commented 1 year ago

Hm that is weird... why can't people see my builds

Unknown commented 1 year ago

oh right you cant see the log

Robin Shen commented 1 year ago

You need to configure general setting of the project to give public permissions.

Unknown commented 1 year ago

I accidentally deleted the build xD

Unknown commented 1 year ago

By the way robin, how do I stop your CI/CD from interfering with mine, cause its going to periodically try to push to github is it not? I can't delete it or we would have divergent branches...

Unknown commented 1 year ago

I have fixed the permission issues with the repo, sorry new to using onedev it is very different from what I am used to... I need to find a solution to the above issue... should I branch and make a "sync" branch and in that only contain the CI/CD to sync, and then disable "main" branch from CI/CD?

New commits added 1 year ago
Unknown commented 1 year ago

@robin I have switched the order around like you wanted.

Anything else which you would like added or removed?

Robin Shen commented 1 year ago

Perfect now. Thanks!

Robin Shen approved 1 year ago
Robin Shen merged 1 year ago
Unknown commented 1 year ago

No problem, glad I could help :)

pull request 1 of 1
Submitter Unknown
Target main
Source unknown
Reviewers
Assignees
Merge Strategy
Create Merge Commit
Watchers (3)
Reference
pull request onedev/docs#5
Please wait...
Page is in error, reload to recover