Hosting own docker registry with UI and tls

Deploying docker registry with UI and tls for kubernetes cluster

Sergey Nuzhdin

4 minute read

First thing you need if you’re using Kubernetes - Docker registry. Because its all about containers. So in this post I will show how to deploy your own registry inside Kubernetes cluster, with UI and tls, with basic http authentication. I’m going to use cluster I deployed in previous post. As short recap - we have Kubernetes cluster with few nodes, and external loadbalancer (ubuntu based machine with nginx) Get ssl certificates from Let’s Encrypt To have proper registry opened to the web, we need to get ssl certificates.

Migrate infrastructure to Kubernetes: Building baremetal cluster

Migrating infrastructure to CoreOS based Kubernetes cluster.

Sergey Nuzhdin

16 minute read

I started trying to switch to Docker about a year ago, but all tools were kind of not-production-ready. With docker-compose it was unreal to scale containers without restart. Deis looked like a black box with a lot of magic. Then Tutum appeared and it was awesome, really, it was the first working solution. So I switched to it. It was fine most of the time, yes it had problems with networking, yes it was annoying to copy-paste all environment variables into each container, but it was in beta, and it was free.

Sergey Nuzhdin

1 minute read

There are lots of posts about magic behaviour of VK API. But yeasterday I faced another one. I have simple button on my site to share page on VK using Wall.post of OpenAPI, and yesterday I found out that it stopped working. After debuging I found error in API response: Permission to perform this action is denied for non-standalone applications: you should request token using blank.html page. The magical thing was that this error appears only on one type of pages, while on another everything was fine.

Sergey Nuzhdin

1 minute read

Short sqlalchemy query to get highcharts ready data from database from datetime field. select count(1), extract(epoch from date_trunc(‘hour’, created_at)) from bid group by extract(epoch from date_trunc(‘hour’, created_at)); db.session .query( extract(‘epoch’, func.DATE(Bid.created_at)).label(‘dt’), func.count() ) .filter(Bid.ownership == o) .filter(Bid.created_at > days_to_count ) .group_by(‘dt’) .order_by(‘dt’) )

Sergey Nuzhdin

3 minute read

For one of my projects I needed to post messages to Facebook Fan Page. After initial search I found out that Facebook has never-expiring token specially for this. It looks like trivial task and I was really surprised when I didn’t find any one-page step-by-step manual to get it. I decided to write all steps from the beginning, not only part about gettting never-expiring token.