How would I host deb packages? - linux

I'm currently working on a github project mainly focused on windows users, written in Java. Install4j allows for easy .deb/.rpm etc. package conversion...
We could just ditribute the .deb on the download side, but when looking at gitlab a while ago, I saw, that Gitlab is using packagecloud.io as a hosting service for their packages (usingtheir own domain), so they can be updated using apt-get.
My question is, if there is a free service working just like packagecloud.io (not launchpad or similar with baazar and that advanced stuff) which can either be hosted on our own server or a public server. Or if there even is a downloadable version of packagecloud.io which we could use on our own server.

You can configure Travis CI to run extra commands when the build succeeds. You can put in some conditions, so that the deploy stage will only be run if commit happens to have a tag name. See the deployment documentation to get going.
A number of providers are officially supported, among which PackageCloud.io.
You might find the dpl utility useful, as it assists with writing and testing deployment settings.

Check out OpenRepo: https://github.com/openkilt/openrepo
I think this is what you're asking for. This is a package hosting server that can make packages available for both Debian (APT) and Red Hat (RPM) files.

Related

How would I go about publishing Orchard.Core so I could deploy to a web host?

In Orchard 1.x, my setup was the following:
Cloned Orchard 1.x and kept it clean (unedited) and updated on my local repo.
Publish that clone of Orchard 1.x to another local repo that I would keep clean and update from the clone above as necessary.
Create multiple clones for different landlord/tenant sites of the Publish of Orchard 1.x, and set each up remotely in separate Bitbucket repositories. These would have staging/production branches.
The above is just a simplistic version of what I actually did.
With Orchard.Core, since it's currently in Beta 2 (or 3, I think), documentation is still being created. In some instances of documentation, I get the impression I can do a similar thing as the directions are to download the source and reference the appropriate NuGet packages. But I don't see much of anything specific about publish/deploy (except some information from blog posts from about a year ago - which is likely stale).
On the other hand, I see some blog posts mentioning that all you really need to do is reference the NuGet packages to run a site locally, but there is no further insight into the publish/deploy scenario. I can infer that maybe just publishing that might be sufficient, but I am not sure.
As it's still in beta, I have no intention of pushing Orchard.Core out on a live site. I just want to start preparing for when 2.0 arrives. I can test out locally whether or not what I did with Orchard 1.x will work with Orchard.Core, but I want to make sure I do it correctly. Just concerned I might be missing something.
Can anyone confirm the publish/deploy steps for Orchard.Core currently? Any insight is appreciated.
Yes, you can publish the application.
Then, if you are on Windows and want to host it on IIS, you will need install the .NET Core Framework and the ANCM (ASP.NET Core hosting module).
In IIS, create a site pointing to the publish folder, with an application pool with 'No Managed Code' for '.NET CLR version' and 'Integrated' for 'Managed Pipeline Mode'.

Frameworks for a Linux auto updater

Basically, there is a webapp that runs on the localhost on ubuntu.
I want to be able to implement an update or two from my side, and have the few machines that will be running the webapp also receive the update on their end. (All the machines that run the webapp on their localhost also have internet connectivity)
I thought of
1) A SQL server that holds simply the latest version
2) The webapp connects to the server and checks the latest version and its own version
Beyond this, I'm a bit lost. I was hoping someone could steer me in the right direction for framework or some text that outlines how to implement this sort of thing.
-Apologizing in advance if the question is too vague/non-descriptive
You Could Make your own repository and add it to the repository list of your package manager (Why reinvent the wheel?) Example Package Repository Creation Tutorial With Apt

Electron as a PPA

I've been doing some research: You can't build PPA's from a Node.js application.
Apparently, this is not a rule, since there are a few projects that have successfully achieve this. WebUDP8 is an example; they build the PPA's for Atom IDE (using Electron) & Popcorn Time (using Node-Webkit)
I did what any human being would do: bother these guys, since there's no documentation (or at least, none that I found).
Their answer:
Launchpad PPAs don't support nodejs yet because they don't allow
fetching external resources. So the Popcorn TIme PPA used to be a
simple installer that automatically downloaded Popcorn Time from its
servers. But, as far as I'm aware of, I'm not using external
resources. It's not like I am downloading dependences from the
package.json. They are all --saved in the folder to build.
How can I make a PPA of my Electron App?
Does the Software Center work with PPA's as well, or only .deb's?

What are the way programmers are using to deploy its node.js app in ubuntu?

What is the recommended way to deploy Node.js on Ubuntu 12.04 in a production environment?
I saw this ppa but I don't know if is well maintained or if it will and if is a source in witch one can trust.
I know that is easy install Node.js manually, but seem to me that install it using the Ubuntu packages manager will allow me safe some management time and will be more integrated with the way the underlying server is being currently management. So, what are your recommendations? Thanks in advanced.
we are using Chef with the existing node.js cookbook
Well, after read lot of posts and pages that talk about Node.js deployment-installation, I must said that Chris PPA is mentioned in tons of them as an official source. Beside one can see her PPA linked at the Github Node.js wiki.
So, seem to me that is trust enough to be used in production, what made it the choice if you want keep your system updated using standards Ubuntu tools.

Deploy repository code to multiple machines at once

My question is: How do you guys deploy the same code from whatever [D]VCS you use on multiple machines? Do you have an automated deployment system and if so what's that? Is it built in-house? Are there out there any tools that can do this automatically? I am asking because I am pretty bored updating up to 20 machines every time I make some modifications.
P.S.: Probably this belongs on ServerFault, but I am asking here because I am thinking at writing my own custom-made deployment system.
Roll your own rpm/deb/whatever for your package, set up your own repo, and have your machines pull on a regular basis. Its really not that hard to do and its already built-in to your system, is well tested, and loaded with features. You could use something like Func if you needed to push instead.
Depending on your situation deploying straight from the versioning system might not always be the best idea. You can only so much by just updating files, and mixing deployment and development probably will make the development use of the versioning system less free.
I see two alternatives that might be interesting.
Deploy from your continuous integration server. (add a task that runs after every successful build, copies over files and executes some remote commands, I'm using this to deploy to a testserver and would find it to tricky to upgrade production in such a way)
Deploy using an existing package manager. You can set up your own apt (or equivalent) repository and package the updates using apt. Have your continuous build system build apt packages but let an admin decide if the should be pushed to the update server. I think this is the only safe solution for production machines.
We use Capistrano for deployment & Puppet for maintaining the servers and avoiding the inevitable 'configuration drift' when many developers/engineers tinker with the package lists and configuration files.
Both of these programs are written in Ruby, but we use them for our PHP codebase stored in a git repository.
I use a combination of deb packages with puppet to deploy code and configure a bunch of machines.
In most projects i have been involved with the final stage has always been an scripted rsync deployment to live. so the multiple targets are built into this process.

Resources