Anybody who's moving from GitHub to straight up GitLab or BitBucket is just shuffling their projects between servers they don't control anyway. The right thing to do if you care that much is to self-host GitLab (or Gitea, or Gogs, or just plain git over ssh in any ssh-capable server) and make the web decentralized again. As a bonus you can say "check out my code at git.my-own-website.com
" and out-badass the plebes.
GitLab is a pain to set up if you're a solo dev who doesn't use Ruby.
I use Gogs, Gitea is a fork of Gogs that some people like:
They're just Go binaries that you can drop in and they'll run right away with a sqlite DB. Great for a small shop with 1-4 programmers
Considering a move.
Right now we're evaluating Gitlab.com (closest to github's experience) and Gogs as a lightweight selfhosted instance with a much lower ressource consumption than selfhosted Gitlab.
The git code itself is distributed, and could be uploaded as is, synced or downloaded whole. I suppose import scripts would import history and non-code content more or less completely.
Gitlab.com maps Github's featerest the closest, but for smaller projects Gogs could work better for a selfhosted instance than Gitlab's community edition.
Yeah, since your firefox profile is in ~/.mozilla/firefox/profiles.
You can put into a git repo and pull it on most linux computers and it's like nothing happened.
Gogs's great for git storage https://gogs.io.
Have you considered using git? Since the configs are just plaintext, you can easily diff them via git.
If you're not already running a git deployment in house you could try something like Gogs. https://gogs.io/
Gogs has a very small footprint, and can even be run from something as basic as a Raspberry Pi
Rancid and/or Git is probably the best way to go IMHO.
Hi!
All depends on your team. A few I've used, or that seem like leaders. These are mostly git based, although BitBucket has support for Mercurial:
On premises, free:
On premises, $$
Hosted
Definitely look into continuous integration and continuous delivery solutions. As an IT professional, these might seem overwhelming before you actually try using them, but they are quite valuable and reasonably straightforward. Hook up your version control system to something like Jenkins (or AppVeyor, TeamCity, Travis CI, etc.) or even a built in GitLab CI system, and you can have the following workflow:
Good luck : ) Awesome to hear more folks in IT starting to use version control.
Here's my advice. In your lone ranger work, work as if you were in a team.
I set up Gogs as a self-hosted Github alternative. The projects are organized by client. Tasks to be done are either created as issues or (incomplete) pull-requests and are organized by milestones. Issues are auto-closed by mentioning them in commit messages.
I'm very fond of Bugsnag but recently I set up a self-hosted Sentry and like it very much. This gives you (and potential team members) a good overview of what your apps are doing in the wild.
Both of the above is coupled with my private Trello boards but you can, of course, also use Kanboard.
This setup helps me to easily collaborate with other people. I just pull them into my team on Gogs and they can start making pull-requests, get the big picture on Trello or look for untracked issues on Sentry.
This isn't a direct answer to what you're asking but since the conversation so far is related to performance I wanted to throw out Gogs as another Git alternative. I tried Gitlab first but I very quickly got frustrated with its performance (Pi3).
They use Gogs, by the way, which is so slim that you can run it on a Raspberry Pi. I've been using it since I left Github paid hosting a year ago and Gitlab had too big of a footprint. Never looked back. Great developers.
A very nice and lightweight alternative is Gogs - Go Git Service.
Features (copied from the GitHub page):
Have a look at Gitea (Git) and Drone (CI). Both are open-source and built with Go, which means they're lightweight and produces a single binary for deployment. IIRC Gitea uses like 15MB of memory during "load". Gitea is forked from Gogs due to some drama with the original author - something about not having time to work on it but doesn't want to add members to the repo and stay in full control of it. Gitea has a familiar GitHub-like UI as well.
NotABug.org is built on Gogs. For a self-hosted service, I think it's OK. Ironically, the Gogs code is on Github, instead on a Gogs instance.
I thought of the decentralized git again, if I build such a service, I'll need a very large disk to store all the repos, because people can fork repos from other servers. Maybe it can be a problem.
We have a little server under our desk which runs a self-hosted Git server using Gogs. Together with TortoiseGit, this works pretty well. Right now, we are making backups manually, but we are also working on an automated backup system.
Why Gogs and not GitHub/BitBucket/Whatever? Because backups and private repository spam. I, for example, have about a dozen repositories there, of which only two or three are "serious" projects. The others are little side projects to keep myself motivated.
You can run gogs without root access. Since it's a Go binary, you just download it and run it, no dependencies or anything else to worry about. (I haven't tried gogs myself, but I've mostly heard good things, especially for less-complicated deployments.)
Alternatively, if some web server is already installed on the machine, you can run another instance of that web server, with access control, on a high port. If you want to do this I can dig up instructions.
Alternatively alternatively, you can run git daemon
with --enable=receive-pack
to allow anonymous, unauthenticated pushes, which is probably not what you want, but if this is within a corporate network or something, that might be just fine.
Well you can take a look at this thread: https://www.reddit.com/r/selfhosted/comments/3mwyk5/must_have_web_apps/
Otherwise I'm testing Gogs (a github like) intensively and it has become very good.
There are plenty of open source projects that do this, here are a couple of them:
Take a look and go from there :)
Sub modules would work well enough for this. It’s never fit perfectly in my use case though.
If the remote is holding you back you can always run something like Gogs locally (or on an rPi) and use that. It’s handy to have regardless tbh.
I can’t speak on Subtrees however, that one is new to me.
>gitlab
>server has only 8GB of RAM
lol good luck, or install gogs instead like I did :)
Gitlab pretty much comes out and says you're gonna have a bad time unless you have 8GB of RAM allocated just for Gitlab.
If your QNAP has only 8GB, then obviously it's not all allocated to Gitlab. I never got Gitlab to run well on my 251 with 8 GB of RAM. It would eat up RAM and crash within a day, and the whole point of having a repo like that is so that it's just up and ready for me to use.
I found gogs and have never needed Gitlab for my purposes. Maybe it'll be the same for you.
> anonymize as much as possible
Sure. It sounds like you should break some of these things down into separate problems.
The biggest hurdle I see is anonymously scraping the data from the government API. You can anonymize access (using Tor the API won't know where you're coming from). However, if you have to provide an identity to the API with every request, it won't do you much good (since you'll be telling them exactly who you are, every time).
Without solving this, I'm not sure the rest of it makes any sense. If you figure there's going to be enough distributed contributions to the caching effort, you could write an application that takes the user's donated ID and queries/uploads data to you (handling all the appropriate Tor shenanigans under the hood). But with user-contributed data like this, you have to figure out who and how to trust, and those identities will ping the API.
The rest: Host your site as a Tor hidden service with the appropriate precautions when setting it up/managing it. That service itself could host git repos for both code and content (check out things like (Gogs)[https://gogs.io/] if you want a more lightweight GitLabs).
Not sure how you'd solve the solution of initial trust, or trust in general without establishing some kind of identity/reputation system on your end (with two way trust, they have to cache your server's certificates to prevent MITM attacks from Tor exit nodes). It's easy enough to have a submit form on a site, harder to turn that into something productive.
I mean... otherwise, just host a Wiki service as a hidden service with reasonable registration logic, users are forced to use Tor to access and contribute (anonymous, but they retain some kind of identity and reputation). Mirror this to a cleartext site (either by copying the data from the server hosting the hidden service and the cleartext, or by hosting them on the same server). Not sure what the best op-sec here is.
If you're going to use Docker, Gogs is more lightweight in my opinion. Granted it doesn't have all of the fancy features of Gitlab but if you just need pain-free, simple Git hosting it fits the bill perfectly with a lean 100MB Docker image (compared to Gitlab's huge 1.4GB image). If you're the only one using it you can use the SQLite backend too which performs admirably and means you don't need a separate database running.
We didn't drop it because of that reason (i just meant our devs wanted it), we did because it lacked same features as gitlab (well except "line range comment") but we have a bunch of ruby developers but not a single python dev in whole company.
Closest what the got to our requirements was https://gogs.io/ but for some reason merge feature there was disabled the moment automatic sync is activated...
Phabricator is also worth a look. It's closer to the Bitbucket / Github side of things and is free.
I've also played with Gogs quite a bit and found it pretty good as a free Github-a-like.
I used to run a company Bitbucket on prem install and loved it. I think the permissions control and hierarchy for projects are great. The licensing is worth looking at ahead of time though. We got caught with 102 users and that bumped us a tier making it fairly expensive per user.
Gitlab is great, but be warned it is currently a pretty heavy resource hog (at least it was for us). We had it running on a 2gb droplet with swap and it was still crashing on us often enough that we switched. Probably it was due to some kind of poor optimization server-side, but we wanted to give Gogs a shot anyways.
This tutorial had us setup with Gogs in about 15 minutes: https://www.digitalocean.com/community/tutorials/how-to-set-up-gogs-on-ubuntu-14-04
*Note that Gogs has not reached version 1.0 yet but it's been 100% stable for us so far. YMMV.
For storing and collaborating on scripts? I would use gogs (gogs.io). It is very lightweight, and trivial to set-up - You can just install it on any administrative or web server you have available (it takes up a trivial amount of resources), and be pushing your repos to it within just a couple of mins.
Gogs also supports standard tooling that you would expect, like webhooks - so if you expand and want to do a testing or deployment pipeline you can hook it right into something like Jenkins.
Edit the same code, at the same time?! Please don't. I am pretty sure that you can do it, but I don't recommend it.
Instead you should look at a system called git. Every programmer writes their share of the code to the file, then they all upload it to a server and merge their files into one.
You can selfhost some of these git servers, for example Gitea, Gogs or one of the many other Git servers.
Now, it's not what you wanted, but git (sometimes SVN, but don't use that, it's a legacy thing) is the go to, the standard in software development.
I suggest you take a look at a git tutorial and then use that instead of a collaboration tool
I was just in the process of rebuilding some infrastructure at home for goofing off and was about to reinstall gitlab since I had it before. The previous announcement about tracking was enough to convince me to look around and find Gogs.
So far it's great and if all you need is source control it seems like it's a better fit than GitLab anyway. It's super simple to set up in docker, or kubernetes.
Big plug for gogs, if you are looking for self hosted git (open source). runs great on windows and is painless to get up
have been using it for a while, and have now got the whole team involved. especially useful if you use pac files to track changes
​
Damage is already done.
It was quite clear in the [url=https://gitlab.com/gitlab-org/gitlab-foss/issues/64341#note_191294270]issue tracker discussion[/url] just how many people couldn't care less about user privacy or rights and that the GDPR is just getting in the way of the tracking they want to do. Companies that really have any care about their users would be doing the things under the GDPR as a matter of course rather than trying to find loopholes.
There appeared to be just a sole developer arguing for opt-in and that you cannot have a take it or leave it approach for non essential tracking. Although even in that case it wasn't clear if that was simply due to a better GDPR understanding, or if he also shared the principles behind it.
The thought process of what I assume were managers, is clear though, they want more tracking and they want it tied to individuals. This may have been rolled back for now, but trust has imho been damaged and as our business is concerned gogs.io is the way forward (although it won't suit everyone, depending on feature requirements).
Candice made a nice point about how to opt-out.
>If they want to opt-out of that, then they are free to delete their user account
People should heed her advice.
Disagree. There are other options for a self hosted solution: https://gogs.io/ as an example. Also https://gitea.io/en-us/ . And there are other hosted options. Basically, self-hosted gitlab is a big pain.
I love GitLab, it's a great product. But for a single person it's a lot of overkill. You're taking on a big piece of software that requires care & feeding for effectively one small feature (A git repo). Now if you want to work with the rest of the feature set, like CI/CD, k8s integration, etc - then it makes more sense.
If you do want to go down that road, you should have plenty of RAM and probably CPU. I wouldn't worry too much about the resource consumption because Gitlab won't be doing much most of the time (again unless you're doing things like CI/CD). Personally I recommend running it via Docker usingsameersbn's docker images - they're great.
If you just want self-git hosting, maybe look at something like gitea/gogs which is very lightweight.
Previously I ran gitlab on my servers, but it eventually was too much work to keep always up to date for something I didn't use *that* much, so I went back to using GitHub/Gitlab.com.
Gitea is actually a fork of Gogs. So it will have all the features of Gogs, plus any they added. They're obviously biased, but gitea has a feature comparison page. However it is possible that Gogs has added features not captured by the Gitea page. Gogs documents their featureset here, though you have to click through the menu on the left to go through all four sections.
I've been using a private Gogs for all my powershell scripts for two years now and it's been incredibly useful.
just the peace of mind of knowing they're saved somewhere safe and I can look up any previous version is worth it.
add to that the fact that my VSC automatically keeps a history of every ctrl-s I did for a project and I'm happy =)
Gotta say... that hardware is incredible overkill for those services.
I run the following on a single xeon quad E3-1225 v3 dell T20 box with 20gb of ram.
I have an old intel NUC running as a domain controller/second dns for replication and to power my nas.
of 4 CPU(s)
14.42 GiB of 19.51 GiB
1.87 TiB of 4.79 TiB
I'm repeating myself here, but GOGS can be run on a raspberry pi, if you want a one person git server with web interface, it's really nice, easy to set up, put an external hard drive in there and you can even set up a mini nas
have you tried gogs? there is a windows version available
you won't need to deal with permissions issues because you won't be using windows accounts, only HTTP requests, also you will have pull request, users can have private repos, etc
it's worth a try
What are the reasons for packaging this within docker? Does the software use something weird or unlikely to be on the machine where it will be run? I've ran software like gogs in the past and it simply amounted to starting the binary, so I'm curious about the need for docker.
Get a $5 DigitalOcean droplet with Gogs. Gogs is basically a GitHub clone written in Go, just download the zip, unzip it, and run ./gogs
. You now have a working Git server with a web UI. It's literally that simple, and because it's compiled machine code instead of ruby it's crazy fast and efficient with memory.
They have simple instructions for setting up a systemd service or adding git over ssh.
I know the examples were contrived. It was explicitly an example of a Jira workflow that gets in your way. There are plenty of workflows that don't.
Regarding gitlab, I can't answer that question because I've used it and hated it. Its interface felt somewhat awkward to use, but maybe I'm just spoiled by github's fuzzy file searching and stuff. It's also painfully slow; as an experiment I cloned the linux kernel repo off of Github into Gitlab and the Gitlab instance crashed after 5 minutes (and it wasn't Out of Memory, I was monitoring that). Just couldn't handle the stress.
If you're going for self hosted git repo management, Gogs is the only tool I can recommend. Project Management is a whole other animal though, and I can only speak in generalities because I've never been a stakeholder or a project manager before, only a developer.
That's a pretty broad statement. I would definitely appreciate some references here. I agree that it's possible and that some do it, but I am struggling to name an example from the top of my head.
The only example I can possibly think of is Gogs which produces release files for many platforms and architectures, but I don't know if they rely on Docker for building these. They definitely could.
You might want to look into gogs instead of gitlab. I haven't thoroughly tested it yet, but so far I already like it much better than gitlab.
Things I don't like about gitlab:
Edit: Since I'm in the early stages of messing with Gogs, as of yesterday, I just noticed that the REST api is still in a pretty early stage, so if that's important to you, it might not be a good idea. That's disappointing.
Beyond price and trust which /u/YMK1234 brings up look for uptime. Some time last year github went down and all the people using it had to take a day off.
Also look at gogs. It's lightweight (you can run it on a DigitalOcean droplet), upgrading takes about ten seconds, it works with LDAP and PAM and has most of the features of GitHub like issue tracking, web-hooks and wikis.
Does anybody have an experience with self-hosted solutions like Gogs? It seems that running a $15/mo droplet at DigitalOcean (+ some backups) is much cheaper solution than using GitHub.
In the past we have ran Bonobo. Works well and installation is easy, just add it to IIS as an application and you're set.
Recently we've switched to Gogs, which is basically a lightweight Github clone. The app runs from a single executable and can also be installed as a service. Gogs has a demo environment which you can use to test it: https://try.gogs.io/
The git book is a good start. It may take some time to everybody be familiar with Git: some of the features is not so easy to learn for newcomers. Knowing to init a repo, commit, push and pull is a good start.
For hosting, GitLab has private repos for free, if you want something in the cloud. For a self-hosting solution, Gogs is much easier to install than GitLab (that can be installed a part, too).
Good luck!