8 ms·
Show HN: VirtKick – Self-hosted Digital Ocean
- salesforce_wha 12y agoSo what is this? A project based off of openstack, a complete re-working of an openstack-like environment or something different?
- Nowaker 12y agoA complete re-working - as OpenStack is too big if you're not a corporation with a very big infrastructure.
- deleted 12y ago[deleted]
- q3k 12y agoI disagree - OpenStack scales down perfectly to two-machine or even (one-machine) deployments (if you don't want HA). It is a pain to configure, but that's the price you pay for flexibility, future-proofing (scalability) and its' true community development model.
- Nowaker 12y ago"Pain to configure" is a blocker here, though. That's why we sacrifice flexibility for simplicity. OpenStack is great for environments that need it - VirtKick won't fit them.
- kordless 12y agoThat's really not true. I run it on small deployments all the time: http://www.stackgeek.com/guides/gettingstarted.html http://www.stackgeek.com/guides/gettingstarted.html
- faster 12y agoI have used your scripts and I'm quite grateful for the time they have saved me. However, the end result is not a fully functional OpenStack installation. I have no idea how much longer that will take, I'm still working on getting public and private networks configured properly, getting floating IPs to work at all, etc. With Juno imminent, I might just start over and hope the Juno installation isn't so difficult, though that doesn't seem to be a top priority for the developers. VirtKick is closer to a scale that I have time to manage, I think. Of course there are tradeoffs; with the big players running OpenStack in production, security fixes are available quickly and I love/hate the short release cycle. VirtKick has layers of security risks and (so far) no big-money contributors who need to get fixes out quickly.
- kordless 12y agoFeel free to jump in the Gitter or email me about them. The networking stuff is usually the last mile in OpenStack and is hard to script for a variety of systems. Happy to add to them if I can make it easier for you!
- sciurus 12y agoIt would be nice to see an architecture diagram, or just a list of the planned components and their responsibilities.
- RushPL 12y agoJust made something that can answer few questions: https://www.virtkick.io/dia.svg https://www.virtkick.io/dia.svg
- GBiT 12y agoWebsite offline, github page - https://github.com/virtkick/virtkick https://github.com/virtkick/virtkick
- dubcanada 12y agoDemo - https://demo.virtkick.io/ https://demo.virtkick.io/
- Nowaker 12y agohttps://www.virtkick.io/ https://www.virtkick.io/ works OK, but it seems you killed https://alpha.virtkick.io/ https://alpha.virtkick.io/ (our 128 GB hypervisor wasn't enough to handle load). https://demo.virtkick.io/ https://demo.virtkick.io/ is a static HTML prototype to get familiar with planned features.
- easytiger 12y agoIts getting like the early 2000s on /. around here. What happened to modern elastic hosting stuff?
- davexunit 12y agoThis is an awesome project! Thanks for choosing the AGPLv3! I tried to create a VM on the demo site, and got a nice Ruby error message next to the VM's name on the 'Machines' page: undefined method `+' for nil:NilClass Still, I'm very excited about this! If anyone from the project reads this: Where is the appropriate place to request support for an additional GNU/Linux distribution? I would love to get GNU Guix running on this. Edit: It seems that I have jumped the gun with my enthusiasm for this project. They will be selling proprietary re-licensed versions as a reward and require copyright assignment for contributions. VirtKick, please reconsider your decision to require copyright assignment. I want my contributions to the free software community to remain free.
- Nowaker 12y agoSorry for that. The hypervisor died, which results in errors like this. We use Bugsnag so we've got all the stacktraces - we'll handle distasters. :)
- Nowaker 12y agoI didn't spot your question. The best way would be to contribute. :) We currently have virtkick-starter, a bunch of scripts that set everything up. You could try it out on Guix and improve if needed. https://github.com/virtkick/virtkick-starter https://github.com/virtkick/virtkick-starter
- davexunit 12y ago>The best way would be to contribute. :) Of course, I was just wondering where a ticket could be created so that it's on the record as a feature request. >We currently have virtkick-starter, a bunch of scripts that set everything up. Perfect. I'll have a look. Thanks! Edit: I think we have a misunderstanding. I would like to use VirtKick to provision Guix VMs, not just install VirtKick on Guix.
- Nowaker 12y agoOh, that's relatively easy at the moment. Put your distro in these two files. ISO will be autodownloaded by `virtkick-starter` script, and the distro will appear on VM create screen. It'll be configurable in the settings in a month, of course. http://goo.gl/u1LKwi http://goo.gl/u1LKwi http://goo.gl/j1j80f http://goo.gl/j1j80f
- warcode 12y agoSo just for clarity. I'll be able to download your source/package, install, go to the web interface and start spinning up VM instances on the same machine? Are the extras like monitoring 3rd party integrations that I'll have to pay for, or actual features of VirtKick?
- Nowaker 12y agoExcactly right - plus on remote hypervisors too. External monitoring integration, and off-site status page, will be actual features of VirtKick. Think of VirtKick is a 1-click installable panel that you can use both on your desktop and as a VPS provider. Instead of paid features, we want it to be forever free - instead, we aim to be crowdfunded. https://www.indiegogo.com/projects/virtkick-take-cloud-back https://www.indiegogo.com/projects/virtkick-take-cloud-back
- toomuchtodo 12y ago> Excactly right - plus on remote hypervisors too. Things get crazy here (in a good way). You could create federation where you allow remote hypervisor management from a central authority (your app). #ArchiveTeam needs their VM running for the latest web property shutdown? Here, have access to my overpowered home router to run a few tiny VMs to help the cause. Knocked it out of the park here guys (and/or gals)! Awesome job.
- RushPL 12y ago(co-founder here) we try to not get ahead of ourselves, working on the basics first but it's sometimes nice to think big as well and you have some interesting ideas sir, thanks!
- warcode 12y agoIt just sounded too good to be true. I'll definitely contribute.
- wolpherine 12y agoNo LXC on the map? :(
- deleted 12y ago[deleted]
- deleted 12y ago[deleted]
- pmalynin 12y agoDocker works with LXC
- crypt1d 12y agoused to. Now-a-days it uses libcontainer.
- general_failure 12y agoDocker moved out of lxc long time ago
- ABS 12y agoDocker by default uses their own libcontainer now but you can change that. In fact last time I checked it supported quite a few via execution drivers like OpenVZ, systemd-nspawn, libvirt-lxc, libvirt-sandbox, qemu/kvm, BSD Jails, Solaris Zones, chroot
- kapilvt 12y agoactually it only does two, lxc and libcontainer (aka native) https://github.com/docker/docker/blob/master/daemon/execdriver/execdrivers/execdrivers.go https://github.com/docker/docker/blob/master/daemon/execdriv...
- RushPL 12y agoLXC is not on immediate roadmap but is very much doable since it is supported by libvirt which we already use. You can open an issue on our Github to track its progress, no promises though. :)
- Communitivity 12y agoThis is a great project. However, given the nature of the project and the license, would this then require any software hosted with it to be AGPLv3? Could I run software that is a mix of Apache, MIT, and Erlang Public License in a VirtKick container without violating AGPLv3?
- Nowaker 12y agoOur intention is that you share code back to the project if you modified it and added some new great features. :) If I'm not wrong, it only applies to the modified source code, and not the data/machines that you work with. http://stackoverflow.com/a/18406382/504845 http://stackoverflow.com/a/18406382/504845
- angersock 12y agoSo, as your link mentions...why not just use GPL? It's good enough for Linux.
- dec0dedab0de 12y agolikely because it could be a hosted application. If he were to choose the GPL then someone could make modifications and host them as a competitive advantage without sharing the modifications to their users.
- conradk 12y agoAGPL means that if you modify VirtKick itself, you have to contribute these modifications back to the project. GPL does not enforce this for software run on a back end.
- kordless 12y agoAll infra code needs to carry the MIT license or similar, IMHO. It's infrastructure.
- RushPL 12y ago
- raphinou 12y agoseems the backend is python, and the web app is ruby. Curious as to why you decided to use 2 different languages.
- RushPL 12y ago(co-founder here) The backend will be ruby as well, we used webvirtmgr only as a means to kickstart the project and have something usable quickly. :) On a general note though we aren't afraid to mix languages. For example node.js is used to handle web sockets for the VNC console as well as for the starter application.
- Oculus 12y agoI feel as though this is one step above just a web page with an email box. Aside from listing a suite of popular OSS, you haven't explained what this app does. Is it similar to Panamax in that it offers you a UI, but only for one box / Flynn or Deis which is trying to create an open source Heroku / something completely different?
- Nowaker 12y agoFlynn, Deis, Heroku are PaaS - they are focused on applications. VirtKick is like DigitalOcean or Linode - they are focused on machines (and containers, that you think of as machines). You install it on your Linux desktop (for localhost hacking), or home or dedicated server (for something more). Will try to express it a little bit better. Thanks for your feedback.
- lazyant 12y agoIt seems we have HN'ed the service; after creating a Debian image: "internal error: pool 'HDD' has asynchronous jobs running."
- Nowaker 12y agoYep. Our 128 GB hypervisor wasn't enough. We redirected traffic to a static HTML prototype, so - at least - you guys have a chance to see the design and planned features. https://demo.virtkick.io/ https://demo.virtkick.io/
- dailen 12y agoSo excited to see this! Great job guys!
- eltondegeneres 12y agoThis looks cool, but I can't see why contributors should assign you copyright so you can sell proprietary versions of VirtKick. Very few free software projects have copyright assignment requirements (GNU being a notable exception).
- Nowaker 12y agoWe don't intend to sell modified proprietary versions. In fact, we planned to re-release it under MIT. Just see on the bottom: "Get excited: (...), MIT..." http://goo.gl/w64Ic5 http://goo.gl/w64Ic5 from https://www.indiegogo.com/projects/virtkick-take-cloud-back https://www.indiegogo.com/projects/virtkick-take-cloud-back We'd just want to get funded, so we can work on it without worrying about other things.
- hellerbarde 12y agoCLA's are both good and bad. The good thing is that the software project has more flexibility when it comes to licenses, but the bad is that they have more flexibility when it comes to licenses...
- sciurus 12y agoThis looks interesting: I've often wanted something with more features than just kvm+libvirt but less complexity than OpenStack or other "private cloud" projects. The one thing that worries me about the pitch is the emphasis on the management panel. I don't want to create a VM in 5 clicks, I want to create it in one API call.
- Nowaker 12y agoThanks for your comment. UI comes first as every user will hit it. API comes next. We planned DigitalOcean-compatible API altogether with a CLI. Looks like we removed this from our website by mistake (will get it back real quick), but it's listed in our IGG campaign: https://www.indiegogo.com/projects/virtkick-take-cloud-back https://www.indiegogo.com/projects/virtkick-take-cloud-back
- Stephen304 12y agoI actually wanted to create something like this. Does it do ssh key injection when VMS are created?
- Nowaker 12y agoNot at this point (we mount an ISO as CD), but we've got it planned: https://github.com/virtkick/virtkick/issues/6 https://github.com/virtkick/virtkick/issues/6
- Stephen304 12y agoPerfect! I wanted to host my own DO type thing for personal projects and I tried "webvirtmgr" which has a nice control panel for libvirt, but the creator insists that ssh key injection is out of the scope of his project. I'm glad to see this happening!
- Nowaker 12y agoYou may be surprised that VirtKick wraps WebVirtMgr and uses it as a JSON API for libvirt. :-) This is a temporary solution but does the job - it allowed us to start real quick with features that users care about, instead of harnessing libvirt. (Of course, SSH key injection is in a scope of our project! https://github.com/virtkick/virtkick/issues/6 https://github.com/virtkick/virtkick/issues/6)
- Stephen304 12y agoAh, I didn't see that before. So without SSH key injection, what's the current primary method of gaining access to VMS created from cloud images that have no password & ssh key? I'm eager to start using it to host a throwaway jenkins server locally. Do you manually edit in ssh key/password or is there some tool to use?
- anentropic 12y agosome documentation...?
- Nowaker 12y agoNot at this point. We're focusing on features now. However, installing an alpha is a matter of 4 commands, give it a try: https://github.com/virtkick/virtkick-starter#virtkick-take-cloud-back https://github.com/virtkick/virtkick-starter#virtkick-take-c...
- catern 12y agoSo what exactly is the advantage of using this layer over the existing libvirt ecosystem? If this is supposed to manage your VMs for you instead of you using the existing libvirt tools, I can see a number of disadvantages. * No virt-manager with SPICE, networking configuration, and other features * No virt-install for very easy creation of VMs, even straight from distro repository URLs * No virsh for command-line management * In general, no seamless use of any of the vast ecosystem of tools around libvirt Is the only advantage that it supports Docker? In that case, why not just add support for Docker into libvirt, and Docker images into virt-install? Is the advantage that it's a web UI for libvirt? There are certainly plenty of those already, but I guess creating another one is fine. I really don't see the use-case.
- sciurus 12y agoAs someone who has * used libvirt and the various tools you mentioned for managing VMs * used the libvirt API to help write vagrant-libvirt [0] I feel that libvirt is a useful (albeit quirky) building block but not something you want to interact with directly. Those tools you mentioned aren't ones I'd generally recommend using. You want to have tools with a higher-level of abstraction that can bring in more functionality that is available in just libvirt and provide better interfaces on top of that combination. There's a reason the OpenStack project created Nova, Glance, Neutron, etc. [0] https://github.com/pradels/vagrant-libvirt https://github.com/pradels/vagrant-libvirt
- Nowaker 12y agoWhat one regards as a feature, other regard as misfeatures. If you like virt-manager, then VirtKick isn't really for you. We value a simple UI more than virt-manager, and REST API more than virsh. We don't say your way is wrong. It's just more difficult. Existing libvirt clients, at least those that we know of, aren't super reliable though. libvirt stucks when there's too much happening on the HV, or denies jobs without even trying (e.g. when a pool has async jobs). A backend that schedules tasks for background execution is needed for that (and we have it), so even now we're not "just" a frontend for libvirt. The use case is a very simple panel with zero virt knowledge needed to start. Thanks for your comment.
- neom 12y agoI would not consider nor call this "Self-hosted DigitalOcean" - Interesting project never the less.
- hbbio 12y agoWithout any judgement over the project and its quality, I would not call it "Self-hosted DO". Because DigitalOcean, basically, is a way to get VMs without self-hosting them!
- RushPL 12y ago(co-founder here) Of course your perspective on DigigalOcean is valid but we think of it simply as a good philosophy to deliver a VM to a user in a seamless, straightforward way - that's the part that we want achieve and let users to self-host. Essentially, you could build your own DigitalOcean using VirtKick. Does it make sense for you? Doesn't mean you should rush and start your own business .. you can run it privately for your own needs or for your company's needs.
- hbbio 12y agoGot downvoted for this... I honestly value DO for the service of providing VMs, and I don't care to run my private VMs. We also have dedicated servers, which run docker directly.
- hangonhn 12y agoHow does this compare to something like Cloud Foundry?
- Nowaker 12y agoCloud Foundry is a self-hosted Heroku. Both are PaaS (but it's you who provide the "P" with the former). VirtKick is a self-hosted DigitalOcean. Both are very simple IaaS (but it's you who provide the "I" with the former) Does it explain?
- hangonhn 12y agoYes. Quite clear actually too. My follow-up then would be how would this compare to OpenStack? If they serve the same purpose, where do you want to differentiate from OpenStack?
- daddykotex 12y agoLooking forward to it, you'll see my contribution!
- Nowaker 12y agoThanks, can't wait!
- breakingcups 12y agoTrying this, seeing a LOT of '[virtm] libvirt: XML-RPC error : Cannot recv data: ssh: connect to host localhost port 22: Connection refused: Connection reset by peer' This is because I don't use port 22 for SSH. Can I fix this easily?
- Nowaker 12y agoI'm sorry but we missed your comment. Just created an issue to track this problem: https://github.com/virtkick/virtkick/issues/65 https://github.com/virtkick/virtkick/issues/65 Please subscribe to the issue so you'll get the updates.
- jameshk 12y agoI've been following this for a while, and it looks like an awesome way to roll your own cloud!