1 00:00:00,000 --> 00:00:01,440 Have you ever felt like you're building 2 00:00:01,440 --> 00:00:03,520 this awesome thing with software, 3 00:00:03,520 --> 00:00:05,780 but all your tools are just kinda scattered 4 00:00:05,780 --> 00:00:06,620 all over the place? 5 00:00:06,620 --> 00:00:07,440 Yeah, I know exactly what you mean. 6 00:00:07,440 --> 00:00:09,800 You're like pulling bits and pieces from here and there. 7 00:00:09,800 --> 00:00:10,720 It's a mess. 8 00:00:10,720 --> 00:00:12,100 It gets confusing really fast. 9 00:00:12,100 --> 00:00:13,000 For sure. 10 00:00:13,000 --> 00:00:14,960 Well today, we're diving into something 11 00:00:14,960 --> 00:00:17,360 that can help you organize all that chaos. 12 00:00:17,360 --> 00:00:18,960 Ooh, that sounds good. 13 00:00:18,960 --> 00:00:21,520 And keep your software building blocks 14 00:00:21,520 --> 00:00:23,000 right where you need them. 15 00:00:23,000 --> 00:00:25,900 I like that, like Legos all organized nice and neat. 16 00:00:25,900 --> 00:00:26,880 Exactly. 17 00:00:26,880 --> 00:00:27,720 Yeah. 18 00:00:27,720 --> 00:00:28,920 We're talking about Verdaccio. 19 00:00:28,920 --> 00:00:31,880 Think of it as your own little software package warehouse. 20 00:00:31,880 --> 00:00:33,120 Ah, that's a great analogy. 21 00:00:33,120 --> 00:00:35,600 A place to keep and manage all those digital tools 22 00:00:35,600 --> 00:00:37,700 you need for your projects. 23 00:00:37,700 --> 00:00:38,920 Before we get into it though, 24 00:00:38,920 --> 00:00:42,820 big thanks to Safe Server for supporting this deep dive. 25 00:00:42,820 --> 00:00:44,880 They provide hosting for Verdaccio 26 00:00:44,880 --> 00:00:47,200 and offer digital transformation consulting. 27 00:00:47,200 --> 00:00:48,040 I didn't know that. 28 00:00:48,040 --> 00:00:52,680 You can find more about them at www.safeserver.de. 29 00:00:52,680 --> 00:00:53,520 Cool. 30 00:00:53,520 --> 00:00:55,360 So back to Verdaccio. 31 00:00:55,360 --> 00:00:57,920 Our mission today is pretty straightforward. 32 00:00:57,920 --> 00:00:58,760 Okay. 33 00:00:58,760 --> 00:01:01,840 So you explain what Verdaccio is in simple terms 34 00:01:01,840 --> 00:01:03,760 and why it might be super useful for you. 35 00:01:03,760 --> 00:01:04,600 Makes sense. 36 00:01:04,600 --> 00:01:06,680 Especially if you're new to software development 37 00:01:06,680 --> 00:01:07,800 or working on projects 38 00:01:07,800 --> 00:01:10,000 that use multiple different pieces of software. 39 00:01:10,000 --> 00:01:12,400 Yeah, those dependencies can be a real headache. 40 00:01:12,400 --> 00:01:13,440 Exactly. 41 00:01:13,440 --> 00:01:14,440 To get to the bottom of it, 42 00:01:14,440 --> 00:01:17,720 we'll be looking at Verdaccio's own documentation 43 00:01:17,720 --> 00:01:19,200 and their GitHub page. 44 00:01:19,200 --> 00:01:20,520 Great resources. 45 00:01:20,520 --> 00:01:21,360 Let's jump in. 46 00:01:21,360 --> 00:01:23,400 All right, so first things first. 47 00:01:23,400 --> 00:01:25,320 What exactly is Verdaccio? 48 00:01:25,320 --> 00:01:28,800 Well, technically it's described as a lightweight 49 00:01:28,800 --> 00:01:32,800 node.js private proxy registry. 50 00:01:32,800 --> 00:01:34,360 Okay, so a lot of technical terms 51 00:01:34,360 --> 00:01:35,480 all smashed together there. 52 00:01:35,480 --> 00:01:36,680 Can we break that down a little? 53 00:01:36,680 --> 00:01:38,300 Absolutely, let's start with lightweight. 54 00:01:38,300 --> 00:01:41,080 Basically it means it's easy to get up and running. 55 00:01:41,080 --> 00:01:41,960 I like easy. 56 00:01:41,960 --> 00:01:44,600 Doesn't require a big complex database setup 57 00:01:44,600 --> 00:01:45,680 right out of the gate. 58 00:01:45,680 --> 00:01:47,800 Think of it like starting small and simple. 59 00:01:47,800 --> 00:01:48,880 Perfect for beginners. 60 00:01:48,880 --> 00:01:51,080 Nobody wants to be overwhelmed with configuration 61 00:01:51,080 --> 00:01:52,160 before they even get started. 62 00:01:52,160 --> 00:01:53,280 Exactly. 63 00:01:53,280 --> 00:01:55,520 Then we have Node.js. 64 00:01:55,520 --> 00:01:58,800 That's a technology that lets developers use JavaScript 65 00:01:58,800 --> 00:01:59,960 for backend stuff. 66 00:01:59,960 --> 00:02:02,040 Right, JavaScript, the language of the web. 67 00:02:02,040 --> 00:02:03,280 Exactly. 68 00:02:03,280 --> 00:02:05,600 And because so many modern web tools 69 00:02:05,600 --> 00:02:08,440 rely on JavaScript and this thing called NPM 70 00:02:08,440 --> 00:02:09,960 to manage their different parts. 71 00:02:09,960 --> 00:02:11,960 NPM, as in the package manager. 72 00:02:11,960 --> 00:02:13,040 Yes, that one. 73 00:02:13,040 --> 00:02:15,920 So Rodaccio being built with Node.js 74 00:02:15,920 --> 00:02:17,600 fits right into that ecosystem. 75 00:02:17,600 --> 00:02:18,840 It speaks the same language. 76 00:02:18,840 --> 00:02:19,520 Exactly. 77 00:02:19,520 --> 00:02:20,360 OK. 78 00:02:20,360 --> 00:02:22,700 And private, I'm guessing that's about keeping things 79 00:02:22,700 --> 00:02:23,560 for ourselves, right? 80 00:02:23,560 --> 00:02:24,560 Precisely. 81 00:02:24,560 --> 00:02:28,160 Private means you can store your own software packages, 82 00:02:28,160 --> 00:02:29,960 like code you've written specifically 83 00:02:29,960 --> 00:02:32,200 for your company or a project. 84 00:02:32,200 --> 00:02:35,120 And you keep all that in your own Rodaccio warehouse 85 00:02:35,120 --> 00:02:36,800 separate from the public internet. 86 00:02:36,800 --> 00:02:39,360 So it's like having your own little private library just 87 00:02:39,360 --> 00:02:40,680 for your team's books. 88 00:02:40,680 --> 00:02:42,040 I like that analogy. 89 00:02:42,040 --> 00:02:42,840 Yes. 90 00:02:42,840 --> 00:02:45,440 And then finally, we have proxy registry. 91 00:02:45,440 --> 00:02:47,560 All right, that one sounds a bit more complicated. 92 00:02:47,560 --> 00:02:48,600 It's not too bad. 93 00:02:48,600 --> 00:02:50,400 Think of a registry in the software world 94 00:02:50,400 --> 00:02:52,220 as a giant catalog. 95 00:02:52,220 --> 00:02:54,880 Where all sorts of software packages are listed. 96 00:02:54,880 --> 00:02:56,440 You can find what you need there. 97 00:02:56,440 --> 00:03:00,600 The biggest public one for JavaScript is called npmjs.org. 98 00:03:00,600 --> 00:03:02,640 Right, I've definitely seen that name floating around. 99 00:03:02,640 --> 00:03:05,200 Yeah, so Rodaccio acts as a proxy, 100 00:03:05,200 --> 00:03:08,360 which means it sits between you and these public registries. 101 00:03:08,360 --> 00:03:09,360 Kind of like a middleman. 102 00:03:09,360 --> 00:03:10,280 Exactly. 103 00:03:10,280 --> 00:03:13,480 When you need a software package, you ask Rodaccio first. 104 00:03:13,480 --> 00:03:14,680 Like a personal shopper? 105 00:03:14,680 --> 00:03:17,160 It checks if you have that package stored 106 00:03:17,160 --> 00:03:19,040 in your own private warehouse. 107 00:03:19,040 --> 00:03:21,720 And if not, it goes out to that public registry. 108 00:03:21,720 --> 00:03:22,760 The big public library. 109 00:03:22,760 --> 00:03:24,600 Gets the package for you and brings it back. 110 00:03:24,600 --> 00:03:25,200 Oh, I see. 111 00:03:25,200 --> 00:03:26,040 That's pretty clever. 112 00:03:26,040 --> 00:03:28,560 So it can help me find stuff, whether it's my own tools 113 00:03:28,560 --> 00:03:29,440 or those public ones. 114 00:03:29,440 --> 00:03:30,360 Exactly. 115 00:03:30,360 --> 00:03:31,600 One stop shop. 116 00:03:31,600 --> 00:03:33,520 That makes a lot of sense. 117 00:03:33,520 --> 00:03:35,640 The documentation also mentions something 118 00:03:35,640 --> 00:03:38,560 called zero config required. 119 00:03:38,560 --> 00:03:40,160 Is that as amazing as it sounds? 120 00:03:40,160 --> 00:03:40,680 Oh, yeah. 121 00:03:40,680 --> 00:03:42,120 That's a big plus. 122 00:03:42,120 --> 00:03:45,040 Rodaccio is designed to be super easy to get started with. 123 00:03:45,040 --> 00:03:48,000 It comes with its own small, built-in storage. 124 00:03:48,000 --> 00:03:48,720 That's awesome. 125 00:03:48,720 --> 00:03:50,040 So as soon as you install it, you 126 00:03:50,040 --> 00:03:52,880 don't need to worry about setting up any additional databases 127 00:03:52,880 --> 00:03:54,000 or complex systems. 128 00:03:54,000 --> 00:03:55,180 That's a huge time saver. 129 00:03:55,180 --> 00:03:56,800 You can just start using it right away. 130 00:03:56,800 --> 00:03:58,260 Precisely. 131 00:03:58,260 --> 00:03:59,840 And speaking of getting things quickly, 132 00:03:59,840 --> 00:04:03,040 since Rodaccio is acting as this proxy registry, 133 00:04:03,040 --> 00:04:05,840 how does it handle actually getting those public packages? 134 00:04:05,840 --> 00:04:06,880 So imagine this. 135 00:04:06,880 --> 00:04:11,320 When Rodaccio goes out to a public registry like npmjs.org 136 00:04:11,320 --> 00:04:15,280 and fetches a package you need, it also makes a copy of it. 137 00:04:15,280 --> 00:04:18,800 And stores that copy locally in your warehouse, 138 00:04:18,800 --> 00:04:20,680 this is called caching. 139 00:04:20,680 --> 00:04:23,120 So basically it's like holding onto a spare just in case. 140 00:04:23,120 --> 00:04:24,080 Exactly. 141 00:04:24,080 --> 00:04:26,680 So the next time you need that same package, 142 00:04:26,680 --> 00:04:28,960 Rodaccio doesn't have to go out to the internet again. 143 00:04:28,960 --> 00:04:31,640 It can just hand you that local copy it already has. 144 00:04:31,640 --> 00:04:33,360 And that speeds things up. 145 00:04:33,360 --> 00:04:34,520 Significantly. 146 00:04:34,520 --> 00:04:37,560 Especially if you or your team frequently 147 00:04:37,560 --> 00:04:39,860 use the same packages over and over again. 148 00:04:39,860 --> 00:04:41,640 So it's like having the most popular books 149 00:04:41,640 --> 00:04:43,800 from the library already on your shelf at home. 150 00:04:43,800 --> 00:04:44,400 Exactly. 151 00:04:44,400 --> 00:04:47,320 No need to go all the way to the library every time. 152 00:04:47,320 --> 00:04:48,320 Love it. 153 00:04:48,320 --> 00:04:50,600 But there's also another really useful aspect 154 00:04:50,600 --> 00:04:51,720 to this caching thing. 155 00:04:51,720 --> 00:04:52,320 Great. 156 00:04:52,320 --> 00:04:52,840 Oh, yeah. 157 00:04:52,840 --> 00:04:56,120 The GitHub page actually talks about how sometimes packages 158 00:04:56,120 --> 00:04:58,600 on public registries can just disappear. 159 00:04:58,600 --> 00:04:59,600 Like poof, gone. 160 00:04:59,600 --> 00:05:00,960 Or they might have issues. 161 00:05:00,960 --> 00:05:01,960 So things break. 162 00:05:01,960 --> 00:05:03,040 Things can break. 163 00:05:03,040 --> 00:05:07,520 But if Rodaccio already has a cached copy, you're protected. 164 00:05:07,520 --> 00:05:10,600 Your project won't suddenly stop working because a package 165 00:05:10,600 --> 00:05:12,040 vanished from the internet. 166 00:05:12,040 --> 00:05:13,240 That's a huge relief. 167 00:05:13,240 --> 00:05:15,560 It's like having a backup plan for your software tools. 168 00:05:15,560 --> 00:05:16,700 Exactly. 169 00:05:16,700 --> 00:05:18,480 Peace of mind. I like that. 170 00:05:18,480 --> 00:05:21,240 So just to recap, we've got private packages. 171 00:05:21,240 --> 00:05:24,120 It acts as a go-between for other registries 172 00:05:24,120 --> 00:05:27,320 and keeps copies of things just in case. 173 00:05:27,320 --> 00:05:29,640 Those are the main things Rodaccio does right. 174 00:05:29,640 --> 00:05:30,640 That's a great summary. 175 00:05:30,640 --> 00:05:32,600 So why would someone actually use Rodaccio? 176 00:05:32,600 --> 00:05:35,560 Well, there are a few really compelling reasons. 177 00:05:35,560 --> 00:05:37,480 The first, as we already discussed, 178 00:05:37,480 --> 00:05:39,920 is for private packages. 179 00:05:39,920 --> 00:05:42,720 If you're working on code that's specific to your company 180 00:05:42,720 --> 00:05:45,480 or a project and you want to keep it under wraps. 181 00:05:45,480 --> 00:05:46,200 Makes sense. 182 00:05:46,200 --> 00:05:50,800 Rodaccio lets you use familiar tools like NPM 183 00:05:50,800 --> 00:05:53,440 to manage and share that code privately. 184 00:05:53,440 --> 00:05:54,440 Only within your team. 185 00:05:54,440 --> 00:05:55,120 Exactly. 186 00:05:55,120 --> 00:05:56,560 It's like having your own app store just 187 00:05:56,560 --> 00:05:57,600 for your internal tools. 188 00:05:57,600 --> 00:05:57,800 Yeah. 189 00:05:57,800 --> 00:05:59,920 I could see how that'd be really useful for keeping 190 00:05:59,920 --> 00:06:00,840 sensitive work secure. 191 00:06:00,840 --> 00:06:01,680 Absolutely. 192 00:06:01,680 --> 00:06:03,560 And you also mentioned earlier that it can connect 193 00:06:03,560 --> 00:06:04,960 to other registries too. 194 00:06:04,960 --> 00:06:05,440 Right. 195 00:06:05,440 --> 00:06:06,400 Why is that helpful? 196 00:06:06,400 --> 00:06:08,600 So sometimes organizations might be 197 00:06:08,600 --> 00:06:11,520 using different sources for their software packages. 198 00:06:11,520 --> 00:06:14,280 Maybe they have some internal private registries in addition 199 00:06:14,280 --> 00:06:16,320 to those big public ones. 200 00:06:16,320 --> 00:06:19,240 Verdaccio can act like a single entry point 201 00:06:19,240 --> 00:06:21,080 to all of these different places. 202 00:06:21,080 --> 00:06:23,040 So I don't have to go hunting around for stuff. 203 00:06:23,040 --> 00:06:23,800 Exactly. 204 00:06:23,800 --> 00:06:25,320 Instead of your developers having 205 00:06:25,320 --> 00:06:29,280 to configure their systems to look in multiple locations, 206 00:06:29,280 --> 00:06:31,760 they can just point everything to Verdaccio. 207 00:06:31,760 --> 00:06:33,120 And it takes care of the rest. 208 00:06:33,120 --> 00:06:34,920 It simplifies things dramatically. 209 00:06:34,920 --> 00:06:36,800 One central hub for everything. 210 00:06:36,800 --> 00:06:38,080 Much easier to manage. 211 00:06:38,080 --> 00:06:38,880 For sure. 212 00:06:38,880 --> 00:06:41,440 We also talked about caching and how it speeds things up 213 00:06:41,440 --> 00:06:43,200 and provides that extra safety net. 214 00:06:43,200 --> 00:06:43,960 Right. 215 00:06:43,960 --> 00:06:45,720 Any other reasons to use Verdaccio? 216 00:06:45,720 --> 00:06:46,720 Yes. 217 00:06:46,720 --> 00:06:49,880 Actually, there's one more pretty neat use case. 218 00:06:49,880 --> 00:06:54,520 Imagine you find a small bug in a public software package. 219 00:06:54,520 --> 00:06:57,760 Or you want to tweak it slightly before the original creators 220 00:06:57,760 --> 00:06:58,900 release an update. 221 00:06:58,900 --> 00:06:59,400 OK. 222 00:06:59,400 --> 00:07:02,440 With Verdaccio, you can actually download that package, 223 00:07:02,440 --> 00:07:05,920 make your change, and then publish your modified version 224 00:07:05,920 --> 00:07:06,600 locally. 225 00:07:06,600 --> 00:07:07,240 Wow. 226 00:07:07,240 --> 00:07:08,120 That's pretty powerful. 227 00:07:08,120 --> 00:07:08,920 You're in control. 228 00:07:08,920 --> 00:07:09,880 You have the power. 229 00:07:09,880 --> 00:07:12,080 You don't have to wait for someone else to fix it for you. 230 00:07:12,080 --> 00:07:13,000 Exactly. 231 00:07:13,000 --> 00:07:15,160 So it seems like Verdaccio gives you a lot more control 232 00:07:15,160 --> 00:07:16,840 over your software dependencies. 233 00:07:16,840 --> 00:07:17,680 It does. 234 00:07:17,680 --> 00:07:19,760 But who actually uses Verdaccio? 235 00:07:19,760 --> 00:07:21,680 Is this just a tool for big companies, 236 00:07:21,680 --> 00:07:23,480 or can anyone benefit from it? 237 00:07:23,480 --> 00:07:25,360 Definitely not just for big companies. 238 00:07:25,360 --> 00:07:28,800 It's used by a really diverse range of people and projects, 239 00:07:28,800 --> 00:07:31,240 because it supports all the popular JavaScript package 240 00:07:31,240 --> 00:07:33,960 managers, like NPM Yarn and PMPM. 241 00:07:33,960 --> 00:07:35,960 So pretty much anyone working with JavaScript. 242 00:07:35,960 --> 00:07:37,080 Yeah, it fits right in. 243 00:07:37,080 --> 00:07:39,800 And for teams that use tools like Docker for packaging 244 00:07:39,800 --> 00:07:42,200 applications and Kubernetes for managing them, 245 00:07:42,200 --> 00:07:43,120 more advanced stuff. 246 00:07:43,120 --> 00:07:44,880 Ferdatio has special support that 247 00:07:44,880 --> 00:07:46,920 makes integration a breeze. 248 00:07:46,920 --> 00:07:49,760 So it can scale with you as your projects grow. 249 00:07:49,760 --> 00:07:50,760 Absolutely. 250 00:07:50,760 --> 00:07:52,440 Now, I was looking at the documentation, 251 00:07:52,440 --> 00:07:56,400 and there was a really long list of well-known projects 252 00:07:56,400 --> 00:07:58,480 and companies that use Ferdatio. 253 00:07:58,480 --> 00:08:00,600 I was really surprised by some of the names on there. 254 00:08:00,600 --> 00:08:01,760 It is quite a list. 255 00:08:01,760 --> 00:08:05,160 It includes projects like Inksp and PMPM itself, Vendor 256 00:08:05,160 --> 00:08:06,720 Create React app. 257 00:08:06,720 --> 00:08:07,680 That's a popular one. 258 00:08:07,680 --> 00:08:08,280 It is. 259 00:08:08,280 --> 00:08:11,440 A lot of people use that to get started with web development. 260 00:08:11,440 --> 00:08:15,320 Also, Angular CLI Storybook, Grafana, Gatsby, Babel, DOT, 261 00:08:15,320 --> 00:08:18,920 JS, DocuSource, Vue, CLI, UPI, and many others. 262 00:08:18,920 --> 00:08:20,240 It's a really wide range. 263 00:08:20,240 --> 00:08:22,480 Big names, small names, everything in between. 264 00:08:22,480 --> 00:08:25,680 It really shows that Ferdatio is a trusted and reliable tool 265 00:08:25,680 --> 00:08:28,160 used across different areas of software development. 266 00:08:28,160 --> 00:08:30,720 And it's not just for building software. 267 00:08:30,720 --> 00:08:32,980 It also mentions some projects use Ferdatio 268 00:08:32,980 --> 00:08:34,440 for testing their software. 269 00:08:34,440 --> 00:08:35,060 Oh, yeah. 270 00:08:35,060 --> 00:08:37,640 That's another great use case, because Ferdatio 271 00:08:37,640 --> 00:08:39,700 is so lightweight and can be set up quickly. 272 00:08:39,700 --> 00:08:42,280 It's perfect for creating these isolated testing environments. 273 00:08:42,280 --> 00:08:43,160 Precisely. 274 00:08:43,160 --> 00:08:47,080 Projects like Create React App, Mozilla Neutrino, PNPM, 275 00:08:47,080 --> 00:08:51,440 Storybook, Babel Dot, JS, Angular, Clive, DocuSaurus. 276 00:08:51,440 --> 00:08:54,000 They all use it to check how their software interacts 277 00:08:54,000 --> 00:08:56,560 with different package versions without messing 278 00:08:56,560 --> 00:08:58,040 with their main development setup. 279 00:08:58,040 --> 00:08:58,280 Right. 280 00:08:58,280 --> 00:08:59,920 You don't want to break things while you're testing. 281 00:08:59,920 --> 00:09:00,560 Exactly. 282 00:09:00,560 --> 00:09:02,360 And it helps them ensure their testing 283 00:09:02,360 --> 00:09:04,440 is consistent and reliable. 284 00:09:04,440 --> 00:09:06,880 So Ferdatio helps guarantee that their software will work 285 00:09:06,880 --> 00:09:08,040 correctly no matter what. 286 00:09:08,040 --> 00:09:09,340 In a controlled environment, yes. 287 00:09:09,340 --> 00:09:10,080 Very cool. 288 00:09:10,080 --> 00:09:12,280 So let's say someone listening to this is intrigued 289 00:09:12,280 --> 00:09:14,360 and wants to give Ferdatio a try. 290 00:09:14,360 --> 00:09:16,000 How do they actually get started? 291 00:09:16,000 --> 00:09:17,240 Well, the first thing you need is 292 00:09:17,240 --> 00:09:21,040 to have Node.js version 18 or newer installed 293 00:09:21,040 --> 00:09:21,920 on your computer. 294 00:09:21,920 --> 00:09:22,480 OK. 295 00:09:22,480 --> 00:09:25,320 Node.js version 18 or newer. 296 00:09:25,320 --> 00:09:25,960 Got it. 297 00:09:25,960 --> 00:09:26,800 What's next? 298 00:09:26,800 --> 00:09:29,040 You can install Ferdatio using the same tool 299 00:09:29,040 --> 00:09:31,880 you use for managing other JavaScript packages. 300 00:09:31,880 --> 00:09:33,360 Usually, this would be npm. 301 00:09:33,360 --> 00:09:33,880 Makes sense. 302 00:09:33,880 --> 00:09:39,320 The command is npm install dachio-ferdatio at next 8. 303 00:09:39,320 --> 00:09:40,080 OK. 304 00:09:40,080 --> 00:09:42,560 npm install dachio-ferdatio at next 8. 305 00:09:42,560 --> 00:09:44,880 The dashi indicates you're installing it globally, 306 00:09:44,880 --> 00:09:46,760 so you can run it from anywhere on your system. 307 00:09:46,760 --> 00:09:47,260 OK. 308 00:09:47,260 --> 00:09:49,280 And at next 8 ensures you're getting the latest 309 00:09:49,280 --> 00:09:50,800 and greatest version. 310 00:09:50,800 --> 00:09:52,920 Now, if you prefer yarn, the command 311 00:09:52,920 --> 00:09:56,640 would be yarn global add-ferdatio at next 8. 312 00:09:56,640 --> 00:10:00,800 And for pnpm, it's pnpm i-g-ferdatio at next 8. 313 00:10:00,800 --> 00:10:02,160 So you've got options. 314 00:10:02,160 --> 00:10:02,760 Exactly. 315 00:10:02,760 --> 00:10:03,920 Choose your weapon. 316 00:10:03,920 --> 00:10:06,160 What if I'm a Docker person? 317 00:10:06,160 --> 00:10:08,560 For Docker enthusiasts, there's an official image 318 00:10:08,560 --> 00:10:09,800 readily available. 319 00:10:09,800 --> 00:10:11,960 The command to pull it down is docker pull 320 00:10:11,960 --> 00:10:15,240 verdatio verdatio.nightly-master. 321 00:10:15,240 --> 00:10:18,160 This lets you run Verdatio neatly within a container. 322 00:10:18,160 --> 00:10:20,120 Which is super convenient for certain setups. 323 00:10:20,120 --> 00:10:20,680 It is. 324 00:10:20,680 --> 00:10:22,800 And for those operating at an even larger scale 325 00:10:22,800 --> 00:10:25,160 with Kubernetes, there's a Helm chart available as well. 326 00:10:25,160 --> 00:10:27,440 So Verdatio's got you covered no matter how you like to work. 327 00:10:27,440 --> 00:10:28,080 Pretty much. 328 00:10:28,080 --> 00:10:30,600 But once I've got it installed, how do I actually 329 00:10:30,600 --> 00:10:31,840 get Verdatio running? 330 00:10:31,840 --> 00:10:33,520 Oh, it's incredibly straightforward. 331 00:10:33,520 --> 00:10:35,840 You just open up your terminal or command prompt 332 00:10:35,840 --> 00:10:37,080 and type in verdatio. 333 00:10:37,080 --> 00:10:37,700 That's it. 334 00:10:37,700 --> 00:10:38,200 That's it. 335 00:10:38,200 --> 00:10:40,080 Hit Enter, and you're off to the races. 336 00:10:40,080 --> 00:10:41,420 That is surprisingly easy. 337 00:10:41,420 --> 00:10:43,080 So it's running in the background now. 338 00:10:43,080 --> 00:10:45,480 But how do I actually use it with my projects? 339 00:10:45,480 --> 00:10:48,320 By default, Verdatio runs on a specific web 340 00:10:48,320 --> 00:10:49,480 address on your computer. 341 00:10:49,480 --> 00:10:53,440 It's http.localhost.4873. 342 00:10:53,440 --> 00:10:54,520 OK, I'm writing that down. 343 00:10:54,520 --> 00:10:57,840 To tell your NPM projects to use your local Verdatio instead 344 00:10:57,840 --> 00:11:00,640 of the public NPM registry, you can run a command 345 00:11:00,640 --> 00:11:01,760 in your terminal. 346 00:11:01,760 --> 00:11:07,040 It's npm setregistry, http.localhost.4873. 347 00:11:07,040 --> 00:11:10,120 So I'm basically saying, hey, NPM, when I need a package 348 00:11:10,120 --> 00:11:12,880 or I want to share one, look at this address on my computer 349 00:11:12,880 --> 00:11:13,380 first. 350 00:11:13,380 --> 00:11:14,120 Precisely. 351 00:11:14,120 --> 00:11:16,840 And if you want to use Verdatio just for a specific command 352 00:11:16,840 --> 00:11:18,460 without changing your default settings, 353 00:11:18,460 --> 00:11:19,920 you can also do it like this. 354 00:11:19,920 --> 00:11:24,440 npm cm figregistry, http.localhost.4873, 355 00:11:24,440 --> 00:11:26,480 npm install package name. 356 00:11:26,480 --> 00:11:29,120 This instructs NPM to use your local registry just 357 00:11:29,120 --> 00:11:31,200 for that one particular installation. 358 00:11:31,200 --> 00:11:32,480 Handy for testing things out. 359 00:11:32,480 --> 00:11:33,120 Exactly. 360 00:11:33,120 --> 00:11:34,660 You also mentioned a web interface earlier. 361 00:11:34,660 --> 00:11:35,400 How do I see that? 362 00:11:35,400 --> 00:11:37,760 If you open up your web browser and navigate 363 00:11:37,760 --> 00:11:43,960 to http.localhost.4873, you'll be greeted by a simple web page. 364 00:11:43,960 --> 00:11:44,480 OK. 365 00:11:44,480 --> 00:11:46,640 It displays all the packages currently residing 366 00:11:46,640 --> 00:11:48,760 in your local Virdatio registry. 367 00:11:48,760 --> 00:11:51,360 You can even search for specific packages right there. 368 00:11:51,360 --> 00:11:54,640 So it's a nice visual way to manage my software warehouse. 369 00:11:54,640 --> 00:11:55,760 Exactly. 370 00:11:55,760 --> 00:11:56,600 Drag and drop. 371 00:11:56,600 --> 00:11:57,600 I like it. 372 00:11:57,600 --> 00:11:59,760 All right, so we've covered what Virdatio is, 373 00:11:59,760 --> 00:12:01,920 why you'd want to use it, who's using it, 374 00:12:01,920 --> 00:12:03,280 and how to get started. 375 00:12:03,280 --> 00:12:05,200 What are some of the key things you can actually 376 00:12:05,200 --> 00:12:07,040 do with it once it's up and running? 377 00:12:07,040 --> 00:12:09,160 Well, you can do all the essential things you would 378 00:12:09,160 --> 00:12:10,840 expect from a package registry. 379 00:12:10,840 --> 00:12:13,000 You can install packages into your projects 380 00:12:13,000 --> 00:12:16,420 using commands like npm install package name. 381 00:12:16,420 --> 00:12:18,520 And you can publish your own custom packages 382 00:12:18,520 --> 00:12:21,360 to your private registry using npm publish. 383 00:12:21,360 --> 00:12:23,120 So the fundamental actions are covered. 384 00:12:23,120 --> 00:12:25,560 What about more fine-grained control? 385 00:12:25,560 --> 00:12:28,920 Virdatio also offers a variety of advanced features. 386 00:12:28,920 --> 00:12:31,280 You can unpublish packages if you need to. 387 00:12:31,280 --> 00:12:32,360 Be careful with that one. 388 00:12:32,360 --> 00:12:34,480 Yes, definitely use caution. 389 00:12:34,480 --> 00:12:36,240 Rewind button doesn't always work. 390 00:12:36,240 --> 00:12:37,420 Not in this case. 391 00:12:37,420 --> 00:12:40,280 But you can also add tags to specific versions 392 00:12:40,280 --> 00:12:43,720 of your packages using npm distag. 393 00:12:43,720 --> 00:12:46,720 And you can even mark older packages as deprecated 394 00:12:46,720 --> 00:12:49,720 to let users know they should probably avoid using them. 395 00:12:49,720 --> 00:12:51,240 So like a little warning sign? 396 00:12:51,240 --> 00:12:52,240 Precisely. 397 00:12:52,240 --> 00:12:53,680 Proceed with caution. 398 00:12:53,680 --> 00:12:54,360 I like it. 399 00:12:54,360 --> 00:12:57,200 It's good to know you have that level of control 400 00:12:57,200 --> 00:12:58,680 over your packages. 401 00:12:58,680 --> 00:13:02,040 But what about keeping things secure 402 00:13:02,040 --> 00:13:04,520 and managing who can access what? 403 00:13:04,520 --> 00:13:07,400 So Verdaccio has you covered there as well. 404 00:13:07,400 --> 00:13:10,680 For user management, you can register new users, 405 00:13:10,680 --> 00:13:12,240 allow them to change their passwords, 406 00:13:12,240 --> 00:13:15,940 and manage the special tokens they use for secure login. 407 00:13:15,940 --> 00:13:19,520 It also integrates with security tools like npm audit and yarn 408 00:13:19,520 --> 00:13:20,520 audit. 409 00:13:20,520 --> 00:13:23,680 These tools can help you find and address potential security 410 00:13:23,680 --> 00:13:25,640 vulnerabilities hiding within the packages 411 00:13:25,640 --> 00:13:27,000 that your project depends on. 412 00:13:27,000 --> 00:13:27,840 Very important. 413 00:13:27,840 --> 00:13:30,120 You don't want any nasty surprises sneaking in. 414 00:13:30,120 --> 00:13:31,160 Exactly. 415 00:13:31,160 --> 00:13:33,040 Better safe than sorry. 416 00:13:33,040 --> 00:13:34,680 Security is always top of mind. 417 00:13:34,680 --> 00:13:36,080 Are there any other handy features 418 00:13:36,080 --> 00:13:37,400 that we haven't talked about yet? 419 00:13:37,400 --> 00:13:39,240 Yeah, there are a couple other things. 420 00:13:39,240 --> 00:13:40,800 It has built-in search functionality, 421 00:13:40,800 --> 00:13:43,840 so you can easily find packages within your registry, 422 00:13:43,840 --> 00:13:45,960 either through the command line or that web 423 00:13:45,960 --> 00:13:47,160 interface we talked about. 424 00:13:47,160 --> 00:13:48,120 Love a good search bar. 425 00:13:48,120 --> 00:13:49,120 Of course. 426 00:13:49,120 --> 00:13:52,680 It also has a very simple ping command you can use. 427 00:13:52,680 --> 00:13:53,400 Ping. 428 00:13:53,400 --> 00:13:55,120 Yeah, you can ping the server just 429 00:13:55,120 --> 00:13:58,400 to check that your Verdaccio server is up and running 430 00:13:58,400 --> 00:13:59,600 and responding correctly. 431 00:13:59,600 --> 00:14:00,680 Just make sure it's alive. 432 00:14:00,680 --> 00:14:01,920 Exactly. 433 00:14:01,920 --> 00:14:04,440 And while it might be less relevant for a private 434 00:14:04,440 --> 00:14:07,400 registry, it even supports starring and unstarring 435 00:14:07,400 --> 00:14:08,400 packages. 436 00:14:08,400 --> 00:14:10,880 Just like on GitHub. 437 00:14:10,880 --> 00:14:11,480 I like it. 438 00:14:11,480 --> 00:14:13,680 So it sounds like it covers pretty much all the bases, 439 00:14:13,680 --> 00:14:16,080 the essentials, and then some nice extras on top. 440 00:14:16,080 --> 00:14:16,840 I'd say so. 441 00:14:16,840 --> 00:14:19,200 Now, we should mention that Verdaccio is open source, right? 442 00:14:19,200 --> 00:14:20,040 Yes, it is. 443 00:14:20,040 --> 00:14:23,360 So what about getting help or contributing to the project? 444 00:14:23,360 --> 00:14:25,040 Well, it's a community-driven project 445 00:14:25,040 --> 00:14:26,840 run entirely by volunteers. 446 00:14:26,840 --> 00:14:29,880 They gladly welcome donations to support their efforts. 447 00:14:29,880 --> 00:14:30,560 That's awesome. 448 00:14:30,560 --> 00:14:33,640 They have a really comprehensive set of documentation 449 00:14:33,640 --> 00:14:35,080 available online. 450 00:14:35,080 --> 00:14:35,960 Always helpful. 451 00:14:35,960 --> 00:14:38,200 They also have a blog, a community forum, 452 00:14:38,200 --> 00:14:40,600 where you can ask questions and get help. 453 00:14:40,600 --> 00:14:44,000 And they even have recordings of past talks and presentations 454 00:14:44,000 --> 00:14:45,120 about Verdaccio. 455 00:14:45,120 --> 00:14:45,860 Nice. 456 00:14:45,860 --> 00:14:48,600 So plenty of resources available if you get stuck 457 00:14:48,600 --> 00:14:49,560 or want to learn more. 458 00:14:49,560 --> 00:14:50,480 Absolutely. 459 00:14:50,480 --> 00:14:53,600 And if you happen to stumble upon any security 460 00:14:53,600 --> 00:14:56,520 vulnerabilities, they have a very clear process 461 00:14:56,520 --> 00:14:57,560 for reporting them. 462 00:14:57,560 --> 00:14:58,800 Responsible disclosure. 463 00:14:58,800 --> 00:14:59,320 Good. 464 00:14:59,320 --> 00:15:00,160 Exactly. 465 00:15:00,160 --> 00:15:02,160 And it's worth mentioning that several companies 466 00:15:02,160 --> 00:15:05,800 like JetBrains, Crowdon Browser Stack, Netlify, Algolia, 467 00:15:05,800 --> 00:15:09,360 and Docker provide free licenses for their tools and services 468 00:15:09,360 --> 00:15:10,620 to the Verdaccio team. 469 00:15:10,620 --> 00:15:12,360 Wow, so they're getting some good support. 470 00:15:12,360 --> 00:15:14,120 Yes, they are, which is fantastic. 471 00:15:14,120 --> 00:15:16,160 It helps keep the project running smoothly. 472 00:15:16,160 --> 00:15:16,960 That's great to see. 473 00:15:16,960 --> 00:15:19,120 It really highlights that spirit of collaboration 474 00:15:19,120 --> 00:15:21,000 in the open source community. 475 00:15:21,000 --> 00:15:23,480 So to wrap things up, what's the one key takeaway 476 00:15:23,480 --> 00:15:26,240 someone listening should remember about Verdaccio? 477 00:15:26,240 --> 00:15:28,780 I'd say the main takeaway is that Verdaccio offers 478 00:15:28,780 --> 00:15:31,040 this really straightforward way to set up 479 00:15:31,040 --> 00:15:34,120 your own local software package warehouse. 480 00:15:34,120 --> 00:15:36,400 This lets you manage your private code securely, 481 00:15:36,400 --> 00:15:37,960 which is super important. 482 00:15:37,960 --> 00:15:40,000 It also speeds up your development workflow 483 00:15:40,000 --> 00:15:41,680 by caching public packages. 484 00:15:41,680 --> 00:15:43,420 You don't have to go download them every time. 485 00:15:43,420 --> 00:15:44,280 Exactly. 486 00:15:44,280 --> 00:15:46,560 You get more control, more reliability 487 00:15:46,560 --> 00:15:49,920 without the complexity of a full-blown enterprise 488 00:15:49,920 --> 00:15:51,520 grade registry system. 489 00:15:51,520 --> 00:15:52,920 It's like that perfect sweet spot. 490 00:15:52,920 --> 00:15:53,440 It is. 491 00:15:53,440 --> 00:15:56,680 And it's especially useful for anyone working with JavaScript, 492 00:15:56,680 --> 00:16:00,040 from those just starting out to seasoned veterans leading 493 00:16:00,040 --> 00:16:01,360 larger teams. 494 00:16:01,360 --> 00:16:02,440 Absolutely. 495 00:16:02,440 --> 00:16:04,640 It sounds like a fantastic tool for anyone 496 00:16:04,640 --> 00:16:08,380 who wants to bring a bit more organization speed and control 497 00:16:08,380 --> 00:16:10,160 to their software development process 498 00:16:10,160 --> 00:16:11,960 without needing to become a server expert. 499 00:16:11,960 --> 00:16:14,240 Couldn't have said it better myself. 500 00:16:14,240 --> 00:16:16,000 Well, listeners, we hope this deep dive has 501 00:16:16,000 --> 00:16:19,880 shed some light on Verdaccio and how it can help you streamline 502 00:16:19,880 --> 00:16:21,760 your development workflow. 503 00:16:21,760 --> 00:16:25,160 Think about how having your own personalized software toolkit 504 00:16:25,160 --> 00:16:28,040 right at your fingertips could simplify your projects 505 00:16:28,040 --> 00:16:30,720 and boost your confidence in your development process. 506 00:16:30,720 --> 00:16:33,220 And potentially save you a lot of headaches down the road. 507 00:16:33,220 --> 00:16:36,640 Big thanks again to Safe Server for supporting this deep dive. 508 00:16:36,640 --> 00:16:39,200 For all your software hosting needs and expert advice 509 00:16:39,200 --> 00:16:41,760 on digital transformation, be sure to check them out 510 00:16:41,760 --> 00:16:44,800 at www.safeserver.de. 511 00:16:44,800 --> 00:16:45,960 They know their stuff. 512 00:16:45,960 --> 00:16:47,600 Until next time, happy coding. 513 00:16:47,600 --> 00:16:50,280 Keep those dependencies organized.