1 00:00:00,000 --> 00:00:04,430 Welcome to the deep dive. We pull insights directly from the sources you share, 2 00:00:04,430 --> 00:00:07,000 helping you get genuinely informed without the noise. 3 00:00:07,000 --> 00:00:12,000 Exactly. We sift through the info, find the key stuff, and connect the dots for you. 4 00:00:12,000 --> 00:00:17,160 And today, we've got a stack of sources all about GOGS. That's G-O-G-S. We're 5 00:00:17,160 --> 00:00:19,000 looking at its GitHub page, its official website. 6 00:00:19,000 --> 00:00:24,660 Right. And the big theme seems to be that GOGS is a self-hosted Git service that's 7 00:00:24,660 --> 00:00:28,000 designed to be, well, the word they use is painless. 8 00:00:28,000 --> 00:00:33,930 I like the sound of that. So our mission for this deep dive is clear. Figure out 9 00:00:33,930 --> 00:00:37,000 what GOGS actually is, why they're calling it painless, 10 00:00:37,000 --> 00:00:40,360 and what makes it a solid choice, maybe especially if you're new to running your 11 00:00:40,360 --> 00:00:41,000 own stuff. 12 00:00:41,000 --> 00:00:45,140 Yeah, or just want something simple. It taps into that whole self-hosting, taking 13 00:00:45,140 --> 00:00:46,000 control idea. 14 00:00:46,000 --> 00:00:50,320 Absolutely. Before we really jump in, though, a huge thank you to the supporter of 15 00:00:50,320 --> 00:00:52,000 this deep dive, Safe Server. 16 00:00:52,000 --> 00:00:56,450 Safe Server really helps with that digital transformation journey. They actually 17 00:00:56,450 --> 00:00:58,000 host this kind of software, GOGS included, 18 00:00:58,000 --> 00:01:01,000 and can support you in setting up your own services. 19 00:01:01,000 --> 00:01:06,460 You check them out and learn more at www.safeserver.de. Seriously, thanks, Safe 20 00:01:06,460 --> 00:01:07,000 Server. 21 00:01:07,000 --> 00:01:08,000 GOGS. 22 00:01:08,000 --> 00:01:13,090 Right, GOGS. So painless self-hosted Git service. Let's break that down for anyone 23 00:01:13,090 --> 00:01:15,000 maybe not living and breathing this stuff. 24 00:01:15,000 --> 00:01:18,000 What's Git, and why is service for it? 25 00:01:18,000 --> 00:01:22,000 Good question. Git at its core is about tracking changes. 26 00:01:22,000 --> 00:01:26,730 Think of it like an incredibly detailed history for your files, mostly used for 27 00:01:26,730 --> 00:01:29,000 kind, but really for anything. 28 00:01:29,000 --> 00:01:32,000 Like track changes in a document, but way more powerful. 29 00:01:32,000 --> 00:01:37,000 Exactly. Snapshots over time. You can see who changed what, go back to old versions. 30 00:01:37,000 --> 00:01:40,000 Essential for collaboration, essential for software development. 31 00:01:40,000 --> 00:01:44,000 Got it. So that's Git. What about the Git service part and self-hosting? 32 00:01:44,000 --> 00:01:47,630 So you can use Git just on your laptop, fine. But a Git service is like a central 33 00:01:47,630 --> 00:01:50,000 hub, usually with a web front end. 34 00:01:50,000 --> 00:01:53,990 It's where you store your projects, repositories manage who has access, track bugs 35 00:01:53,990 --> 00:01:56,000 or tasks, review code changes. 36 00:01:56,000 --> 00:02:00,000 Things like GitHub or GitLab are popular hosted Git services. 37 00:02:00,000 --> 00:02:04,000 Ah, okay. So Gods lets you run that hub yourself, on your own server or computer. 38 00:02:04,000 --> 00:02:06,000 That's the self-hosted bit. 39 00:02:06,000 --> 00:02:09,000 You're not using GitHub servers, you're using yours. 40 00:02:09,000 --> 00:02:12,550 Precisely. You control the data, the users, everything. Which is a big deal for 41 00:02:12,550 --> 00:02:13,000 some people. 42 00:02:13,000 --> 00:02:17,070 Definitely. Okay, so that brings us back to painless. That's a bold claim for 43 00:02:17,070 --> 00:02:18,000 server software. 44 00:02:18,000 --> 00:02:22,000 How does Gods actually try to achieve that? Based on the sources, I mean. 45 00:02:22,000 --> 00:02:25,780 Well, a lot of it seems to come down to the technology choice. It's written in Go, 46 00:02:25,780 --> 00:02:27,000 the programming language. 47 00:02:27,000 --> 00:02:33,470 Go. Okay. I've heard things about Go being efficient, but how does that make Gods 48 00:02:33,470 --> 00:02:37,000 painless for, say, me trying to set it up? 49 00:02:37,000 --> 00:02:41,280 The really big thing with Go for this purpose is that it compiles into a single 50 00:02:41,280 --> 00:02:43,000 independent binary file. 51 00:02:43,000 --> 00:02:47,000 One file? Wait, so what does that actually mean when I go to install it? 52 00:02:47,000 --> 00:02:52,000 It means you skip, like, 90% of the usual setup drama. You know, normally you need 53 00:02:52,000 --> 00:02:54,000 the right version of Python or Ruby, 54 00:02:54,000 --> 00:02:58,770 a specific web server, maybe five different libraries, database drivers. It can be 55 00:02:58,770 --> 00:03:01,000 a real headache making sure they all play nice. 56 00:03:01,000 --> 00:03:03,000 Oh yeah, I've been there. Dependency hell. 57 00:03:03,000 --> 00:03:07,380 Exactly. With GOGS, because it's compiled into that one binary, pretty much 58 00:03:07,380 --> 00:03:10,000 everything it needs is packed inside that single file. 59 00:03:10,000 --> 00:03:13,000 You download it, you configure it, and you basically run it. 60 00:03:13,000 --> 00:03:17,000 Wow. Okay, that does sound significantly easier. Just one thing to manage. 61 00:03:17,000 --> 00:03:20,660 Yeah. And because Go is built for cross-platform stuff, that same binary approach 62 00:03:20,660 --> 00:03:22,000 works almost everywhere. 63 00:03:22,000 --> 00:03:28,000 The docs specifically list Linux, Mac OS, Windows, and even ARM systems. 64 00:03:28,000 --> 00:03:31,000 ARM, like Raspberry Pi territory. 65 00:03:31,000 --> 00:03:33,000 Exactly like a Raspberry Pi. 66 00:03:33,000 --> 00:03:36,580 And that ties into the other huge part of this painless idea, especially for 67 00:03:36,580 --> 00:03:39,000 beginners or anyone on a budget. 68 00:03:39,000 --> 00:03:41,000 Gox is incredibly lightweight. 69 00:03:41,000 --> 00:03:43,000 Lightweight? How lightweight? 70 00:03:43,000 --> 00:03:46,000 Running a whole Git service sounds like it should need some decent power. 71 00:03:46,000 --> 00:03:49,240 That's what's kind of surprising. The sources really hammer at this point low 72 00:03:49,240 --> 00:03:51,000 minimal requirements. 73 00:03:51,000 --> 00:03:55,250 They mentioned, yeah, a Raspberry Pi being fine, or like a $5 virtual server from 74 00:03:55,250 --> 00:03:57,000 DigitalOcean being more than enough. 75 00:03:57,000 --> 00:03:59,000 $5 a droplet. 76 00:03:59,000 --> 00:04:04,060 And I saw mentions from users running it in Docker containers using only, get this, 77 00:04:04,060 --> 00:04:05,000 64 megabytes of RAM. 78 00:04:05,000 --> 00:04:11,000 64 megs? No way. For a web service doing all that Git stuff, that's tiny. 79 00:04:11,000 --> 00:04:14,000 It's ridiculously low. It shows how efficient it must be. 80 00:04:14,000 --> 00:04:20,410 Now for, say, actual teamwork, the baseline they suggest is maybe two CPU cores and 81 00:04:20,410 --> 00:04:24,000 512 megs of RAM. Still very modest. 82 00:04:24,000 --> 00:04:26,000 Still tiny compared to a lot of similar platforms. 83 00:04:26,000 --> 00:04:31,590 Right. And they also point out that even if your team grows, the memory use stays 84 00:04:31,590 --> 00:04:32,000 low. 85 00:04:32,000 --> 00:04:37,000 You might need more CPU eventually, but it won't suddenly demand gigs of RAM. 86 00:04:37,000 --> 00:04:41,000 Okay, this is actually a game changer. It means someone learning, or a small team, 87 00:04:41,000 --> 00:04:44,270 or just someone wanting to host their private projects doesn't need expensive 88 00:04:44,270 --> 00:04:45,000 hardware. 89 00:04:45,000 --> 00:04:49,000 It makes self-hosting this kind of tool way more accessible. 90 00:04:49,000 --> 00:04:53,190 That's exactly it. It lowers the barrier to entry massively, affordability and 91 00:04:53,190 --> 00:04:54,000 simplicity. 92 00:04:54,000 --> 00:04:58,260 So it's easy to install, runs on minimal hardware, but is it actually fully 93 00:04:58,260 --> 00:04:59,000 featured? 94 00:04:59,000 --> 00:05:02,000 Or did they cut corners to make it small? What can it actually do? 95 00:05:02,000 --> 00:05:05,840 Seems like they packed in the essentials, and then some. You get the standard ways 96 00:05:05,840 --> 00:05:10,480 to access your code repositories, SSH, HTTP, HTTPS, all the normal stuff developers 97 00:05:10,480 --> 00:05:11,000 expect. 98 00:05:11,000 --> 00:05:14,000 Okay, basic access, check. What about managing stuff? 99 00:05:14,000 --> 00:05:18,670 Yep. User dashboard, user profiles, an activity timeline so you can see what's 100 00:05:18,670 --> 00:05:23,390 happening, plus tools for managing users, creating organizations for teams, and 101 00:05:23,390 --> 00:05:26,000 managing the repositories themselves. 102 00:05:26,000 --> 00:05:29,000 And collaboration, like issue tracking, code reviews. 103 00:05:29,000 --> 00:05:33,940 Absolutely. It's got repository issues, pull requests, which are key for reviewing 104 00:05:33,940 --> 00:05:39,000 and merging code changes, and even a built-in wiki for each project's documentation. 105 00:05:39,000 --> 00:05:42,000 Things you'd definitely expect from, like a GitHub. 106 00:05:42,000 --> 00:05:46,080 For sure. And convenience features too, like a web editor. If you just need to make 107 00:05:46,080 --> 00:05:50,000 a quick tweet to a file or edit a wiki page, you can do it right in the browser. 108 00:05:50,000 --> 00:05:54,270 Handy. What about connecting it to other developer tools, like notifications or 109 00:05:54,270 --> 00:05:55,000 deployment? 110 00:05:55,000 --> 00:05:59,570 It has web hooks, so you can set it up to ping services like Slack or Discord when 111 00:05:59,570 --> 00:06:02,000 someone pushes code or opens an issue. 112 00:06:02,000 --> 00:06:06,700 The source is mentioned Dingtalk too. It also supports deploy keys for automated 113 00:06:06,700 --> 00:06:11,000 deployments and Git LFS for handling those awkward large files. 114 00:06:11,000 --> 00:06:15,690 LFS is important for projects with big assets. And if I'm already using something 115 00:06:15,690 --> 00:06:18,000 else, like GitUp, can I move my stuff over? 116 00:06:18,000 --> 00:06:22,310 Looks like it. They mentioned features for migrating or mirroring repositories. And 117 00:06:22,310 --> 00:06:25,000 importantly, that includes the wiki content too. 118 00:06:25,000 --> 00:06:29,180 So you can potentially pull your existing projects into your self-hosted GOGS 119 00:06:29,180 --> 00:06:30,000 instance. 120 00:06:30,000 --> 00:06:35,330 That's useful. I also saw mentions of rendering Jupyter notebooks in PDFs. That 121 00:06:35,330 --> 00:06:38,000 seems a bit extra for just a Git service. 122 00:06:38,000 --> 00:06:40,490 Yeah, it's a nice touch. It shows they're thinking about different kinds of 123 00:06:40,490 --> 00:06:45,000 projects, maybe data science or documentation-heavy ones, not just pure code. 124 00:06:45,000 --> 00:06:50,590 And under the hood, there's flexibility too. It supports various databases, PostgreSQL, 125 00:06:50,590 --> 00:06:54,000 MySQL, even Squite 3 if you want something super simple. 126 00:06:54,000 --> 00:06:57,000 Squite 3 would make it even easier for single-user setups. 127 00:06:57,000 --> 00:07:01,730 Right. And you can customize the appearance with HTML templates, apparently, and it's 128 00:07:01,730 --> 00:07:04,000 localized into over 30 languages. 129 00:07:04,000 --> 00:07:08,260 Wow. Okay, that's a pretty comprehensive feature set packed into something that can 130 00:07:08,260 --> 00:07:09,000 run on a Pi. 131 00:07:09,000 --> 00:07:12,000 They really seem to have balanced features with that lightweight goal. 132 00:07:12,000 --> 00:07:17,000 It seems like it. Focus on the core, make it efficient, add the important conveniences. 133 00:07:17,000 --> 00:07:20,560 Alright, so if someone listening is thinking, okay, this sounds interesting, I want 134 00:07:20,560 --> 00:07:23,000 to try it, how do they actually get it running? You mentioned the binary. 135 00:07:23,000 --> 00:07:29,000 Yeah, that single binary method seems like the star attraction for ease of use. 136 00:07:29,000 --> 00:07:34,000 Download the file for your system, maybe set up a simple database like SucLite, 137 00:07:34,000 --> 00:07:38,000 configure a few things, and run it. That's often the gist of it. 138 00:07:38,000 --> 00:07:40,000 That really does sound almost painless. 139 00:07:40,000 --> 00:07:44,480 It's the goal. But there's flexibility, too. If you want more control, you can 140 00:07:44,480 --> 00:07:46,000 build it from the source code. 141 00:07:46,000 --> 00:07:50,160 There are also official packages for some systems, and of course, Docker images are 142 00:07:50,160 --> 00:07:51,000 available. 143 00:07:51,000 --> 00:07:53,000 Docker makes deployment really consistent. 144 00:07:53,000 --> 00:07:58,540 Definitely. Vagrant, too. And they even list specific guides or integrations for 145 00:07:58,540 --> 00:08:02,000 cloud platforms like Cloudren, Unihost, AlwaysData. 146 00:08:02,000 --> 00:08:06,000 So lots of paths, depending on your comfort level and needs. 147 00:08:06,000 --> 00:08:08,000 And crucially, tutorials are available. 148 00:08:08,000 --> 00:08:11,430 Yeah, the docs point towards various tutorials, which is super helpful when you're 149 00:08:11,430 --> 00:08:13,000 starting out with any new server software. 150 00:08:13,000 --> 00:08:17,000 Reduces that initial, how do I even start feeling? 151 00:08:17,000 --> 00:08:21,000 Yeah, for sure. Okay, let's talk about the project itself. It's open source, right? 152 00:08:21,000 --> 00:08:25,000 100%. It's under the MIT license, which is very permissive. 153 00:08:25,000 --> 00:08:29,000 All the codes right there on GitHub for anyone to look at, use, modify. 154 00:08:29,000 --> 00:08:35,840 And those GitHub stats, we saw over 46,000 stars, 5,000 forks, hundreds of 155 00:08:35,840 --> 00:08:37,000 contributors. 156 00:08:37,000 --> 00:08:41,910 That's not trivial. That signals a pretty healthy active project with a real 157 00:08:41,910 --> 00:08:43,000 community behind it. 158 00:08:43,000 --> 00:08:47,320 Absolutely. Those aren't numbers you see for abandoned projects. It suggests it's 159 00:08:47,320 --> 00:08:48,000 stable. 160 00:08:48,000 --> 00:08:52,000 People are using it, contributing back. And if you need help, the documentation 161 00:08:52,000 --> 00:08:54,000 mentions a discussion section on GitHub, 162 00:08:54,000 --> 00:08:56,000 so there's likely an active community forum there, too. 163 00:08:56,000 --> 00:08:58,000 Good to know there's support. 164 00:08:58,000 --> 00:09:03,000 So, wrapping this all up, we've talked about what GOGS is, the painless philosophy, 165 00:09:03,000 --> 00:09:04,000 the go-binary magic, 166 00:09:04,000 --> 00:09:08,070 how lightweight it is, the features, installation. Why does this matter to you, 167 00:09:08,070 --> 00:09:09,000 listening right now? 168 00:09:09,000 --> 00:09:12,000 Well, I think if you've ever looked at tools like GitHub or GitLab and thought, 169 00:09:12,000 --> 00:09:15,000 I wish I could run something like that myself, have that control. 170 00:09:15,000 --> 00:09:18,000 But maybe you were put off by the complexity or the server requirements, 171 00:09:18,000 --> 00:09:20,000 GOGS seems like a genuine answer. 172 00:09:20,000 --> 00:09:24,000 It gives you that self-hosting power, that control over your code and data, 173 00:09:24,000 --> 00:09:29,000 but without needing a sysadmin degree or a hefty server build to get started. 174 00:09:29,000 --> 00:09:34,110 Exactly. It feels like it's really built for people learning, for hobby projects, 175 00:09:34,110 --> 00:09:35,000 small teams, 176 00:09:35,000 --> 00:09:39,000 or just anyone who wants a private Git setup without a massive overhead. 177 00:09:39,000 --> 00:09:43,000 It seems to make good on that painless promise for a specific audience. 178 00:09:43,000 --> 00:09:47,440 Yeah, it really lowers the barrier, makes self-hosting a core development tool feel 179 00:09:47,440 --> 00:09:50,000 achievable for almost anyone. 180 00:09:50,000 --> 00:09:52,000 It seems they've stuck to that vision really well. 181 00:09:52,000 --> 00:09:55,620 It definitely looks that way. Simplicity and efficiency prioritize right from the 182 00:09:55,620 --> 00:09:56,000 start. 183 00:09:56,000 --> 00:10:04,000 So the key takeaway here really is that Gogs offers this surprisingly lightweight, 184 00:10:04,000 --> 00:10:07,000 genuinely approachable way to run your own Git service. 185 00:10:07,000 --> 00:10:11,000 It opens up self-hosting to folks who might have thought it was out of reach. 186 00:10:11,000 --> 00:10:15,000 It's a fantastic example of how smart technical choices can make powerful tools 187 00:10:15,000 --> 00:10:17,000 more democratic, really. 188 00:10:17,000 --> 00:10:20,000 Which leaves us with the final thought to chew on. 189 00:10:20,000 --> 00:10:25,000 If you can easily take control of your code repository with something like Gogs, 190 00:10:25,000 --> 00:10:28,970 could that be the first step towards taking control of your whole digital 191 00:10:28,970 --> 00:10:30,000 environment? 192 00:10:30,000 --> 00:10:32,000 Something to think about. 193 00:10:32,000 --> 00:10:34,000 Indeed. Where does that path lead? 194 00:10:34,000 --> 00:10:38,880 Exactly. And once more, a huge thank you to Safe Server for supporting this deep 195 00:10:38,880 --> 00:10:39,000 dive. 196 00:10:39,000 --> 00:10:42,000 If exploring self-hosting or digital transformation is on your mind, 197 00:10:42,000 --> 00:10:45,000 check out how they can help they host software like Guards 2. 198 00:10:45,000 --> 00:10:48,000 Find them at www.safeserver.de. 199 00:10:48,000 --> 00:10:50,000 Thanks for tuning in to the deep dive.