golang

traefik

23 May 2020Last Commit28901 (6157/yr)Github Stars540Issues

Traefik (pronounced traffic) is a modern HTTP reverse proxy and load balancer that makes deploying microservices easy. Traefik integrates with your existing infrastructure components (Docker, Swarm mode, Kubernetes, Marathon, Consul, Etcd, Rancher, Amazon ECS, ...) and configures itself automatically and dynamically. Pointing Traefik at your orchestrator should be the only configuration step you need.

. Overview . Features . Supported backends . Quickstart . Web UI . Documentation .

. Support . Release cycle . Contributing . Maintainers . Credits .

gitea

24 May 2020Last Commit19813 (5563/yr)Github Stars1430Issues

The goal of this project is to make the easiest, fastest, and most painless way of setting up a self-hosted Git service. Using Go, this can be done with an independent binary distribution across all platforms which Go supports, including Linux, macOS, and Windows on x86, amd64, ARM and PowerPC architectures. Want to try it before doing anything else? Do it with the online demo! This project has been forked from Gogs since 2016.11 but changed a lot.

From the root of the source tree, run:

mattermost-server

23 May 2020Last Commit18252 (3694/yr)Github Stars462Issues

Mattermost is an open source, private cloud, Slack-alternative from https://mattermost.com.

It's written in Golang and React and runs as a single Linux binary with MySQL or PostgreSQL. Every month on the 16th a new compiled version is released under an MIT license.

Note: Heroku preview does not include email or persistent storage

Auto-deploy Mattermost to Amazon Web Services, Azure, Google Cloud Platform, or Oracle Cloud Platform via Bitnami.

In addition to the web interface, you can also download Mattermost clients for Android, iOS, Windows PC, Mac OSX, and Linux.

faas

18 May 2020Last Commit17636 (5155/yr)Github Stars71Issues

OpenFaaS® makes it easy for developers to deploy event-driven functions and microservices to Kubernetes without repetitive, boiler-plate coding. Package your code or an existing binary in a Docker image to get a highly scalable endpoint with auto-scaling and metrics.

Highlights

Want to dig deeper into OpenFaaS?

Individual Sponsorships / End-users / Insiders Track 🍻

OpenFaaS is free to use and completely open source under the MIT license, however financial backing is required to sustain the effort to maintain and develop the project.

photoprism

23 May 2020Last Commit5341 (2298/yr)Github Stars78Issues

PhotoPrism™ is a server-based application for browsing, organizing and sharing your personal photo collection. It makes use of the latest technologies to automatically tag and find pictures without getting in your way. Say goodbye to solutions that force you to upload your visual memories to the cloud.

More screenshots: https://github.com/photoprism/photoprism/wiki/Screenshots

You're welcome to play with our demo at demo.photoprism.org. Leave your email to get a release notification.

Step-by-step installation instructions can be found in our User Guide. Developers can skip this and move on to the Developer Guide.

cloud-torrent

07 Apr 2020Last Commit4367 (877/yr)Github Stars130Issues

Cloud torrent is a a self-hosted remote torrent client, written in Go (golang). You start torrents remotely, which are downloaded as sets of files on the local disk of the server, which are then retrievable or streamable via HTTP.

See Future Features here

Binaries

See the latest release or download and install it now with

Tip: Auto-run cloud-torrent on boot

Docker

Source

Go is required to install from source

VPS

Digital Ocean

Vultr

AWS

Heroku

Heroku is no longer supported

The next set of core features can be tracked here. This feature set requires large structural changes and therefore requires a complete rewrite for best results. This rewrite is in progress in the 0.9 branch though it will take quite some time.

shiori

19 May 2020Last Commit4036 (1729/yr)Github Stars60Issues

Shiori is a simple bookmarks manager written in Go language. Intended as a simple clone of Pocket. You can use it as command line application or as web application. This application is distributed as a single binary, which means it can be installed and used easily.

All documentation is available in wiki. If you think there are incomplete or incorrect information, feels free to edit it.

Shiori is distributed using MIT license, which means you can use and modify it however you want. However, if you make an enhancement for it, if possible, please send a pull request. If you like this project, please consider donating to me either via PayPal or Ko-Fi.

krakend

19 May 2020Last Commit2697 (759/yr)Github Stars31Issues

An open framework to assemble ultra performance API Gateways with middlewares; core service of the KrakenD API Gateway.

Looking for the API gateway ready to use?

Site | Download | Build | Documentation | Blog

Consumers of REST API content (specially in microservices) often query backend services that weren't coded for the UI implementation. This is of course a good practice, but the UI consumers need to do implementations that suffer a lot of complexity and burden with the sizes of their microservices responses.

1backend

26 Dec 2019Last Commit1927 (762/yr)Github Stars4Issues

1Backend is a platform designed to make deploying, running and maintaining lambda functions/microservices easy.

It enables you to launch a new live app in seconds - after choosing your tech stack (e.g. Go with access to an SQL database) you get an empty app which is already live and callable from the outside (through HTTP).

You just have to plug in your own code (no, you don't have to write code in the browser). It's even pre-connected to your database and other infrastructure elements of your choosing.

miniflux

23 May 2020Last Commit1864 (743/yr)Github Stars99Issues

Miniflux is a minimalist and opinionated feed reader:

It's simple, fast, lightweight and super easy to install.

Official website: https://miniflux.app

The Miniflux documentation is available here: https://miniflux.app/docs/ (Man page)

Default theme:

Dark theme when using keyboard navigation:

rudder-server

23 May 2020Last Commit1777 (2100/yr)Github Stars34Issues

Short answer: RudderStack is an open-source Segment alternative written in Go, built for the enterprise. .

Long answer: RudderStack is a platform for collecting, storing and routing customer event data to dozens of tools. RudderStack is open-source, can run in your cloud environment (AWS, GCP, Azure or even your data-centre) and provides a powerful transformation framework to process your event data on the fly.

RudderStack runs as a single go binary with Postgres. It also needs the destination (e.g. GA, Amplitude) specific transformation code which are node scripts. This repo contains the core backend and the transformation modules of Rudder. The client SDKs are in a separate repo (link below).

goatcounter

24 May 2020Last Commit900 (910/yr)Github Stars37Issues

GoatCounter is a web analytics platform, roughly similar to Google Analytics or Matomo. It aims to give meaningful privacy-friendly web analytics for business purposes, while still staying usable for non-technical users to use on personal websites. The choices that currently exist are between freely hosted but with problematic privacy (e.g. Google Analytics), hosting your own complex software or paying $19/month (e.g. Matomo), or extremely simplistic "vanity statistics".

There are two ways to run this: as hosted service on goatcounter.com, free for non-commercial use, or run it on your own server (the source code is completely Open Source/Free Software, and it can be self-hosted without restrictions).

dispatch

23 May 2020Last Commit549 (103/yr)Github Stars8Issues

There is a few different ways of getting it:

This requires a Go environment, version 1.10 or greater.

Fetch, compile and run dispatch:

To get some help run:

This requires Node.js and yarn.

Fetch the dependencies:

Run the build:

The server needs to be rebuilt to embed new client builds.

For development with hot reloading start the frontend:

And then the backend in a separate terminal:

The libraries this project is built with.

Cross-browser Testing Platform and Open Source <3 Provided by Sauce Labs

plik

11 Apr 2020Last Commit507 (100/yr)Github Stars19Issues

Plik is a scalable & friendly temporary file upload system ( wetransfer like ) in golang.

1.3-RC1

To run plik, it's very simple :

Et voilà ! You now have a fully functional instance of Plik running on http://127.0.0.1:8080.
You can edit server/plikd.cfg to adapt the configuration to your needs (ports, ssl, ttl, backend params,...)

Configure root.gg repository and install server and/or client

Edit server configuration at /etc/plikd.cfg and start the server

To compile plik from sources, you'll need golang and npm installed on your system.

tasks

30 Oct 2019Last Commit469 (104/yr)Github Stars7Issues

Tasks is a simplistic Go webapp to manage tasks, I built this tool to manage tasks which I wanted to do, there are many good kanban style boards, but I felt they were a bit too heavyweight for my taste. Also I wanted to learn the Go webapp development.

Via script: bash install.sh

This will generate the binary and set up the database. If you want, you can copy the binary and the public folder into a folder of your choice.

Manually:

You can change the port in the config file

I am learning writing webapps with Go as I build this application, I took to writing an introductory book about building webapps in Go because I faced a lot of problems while learning how to write webapps in Go, it, the book strives to teach by practical examples. You are welcome to contribute to the book.

satellity

18 May 2020Last Commit338 (184/yr)Github Stars16Issues

Satellity is a 100% open source forum, written in Go. Please visit https://satellity.org for more details. For feedback, you can submit issues or join our slack(https://bit.ly/31b6xeX), Let's learn Go together!

Satellity is a still a PRE-ALPHA version. Please don't use it in production!!

Copy env.example to .env, and replace Satellity with your project name.

run yarn install, then yarn start. It's running now.

When contributing to this repository, please reach out to @jadeydi or other contributors via email, issue or any other means to discuss the changes you wish to make.

tania-core

30 Apr 2020Last Commit314 (129/yr)Github Stars15Issues

Tania is a free and open source farm management software. You can manage your farm areas, farm reservoirs, farm tasks, inventories, and the crop growing progress. It is designed for any type of farms.

Download Tania for Windows x64 and Linux x64 on the release page.

This software is built with Go programming language. It means you will get an executable binary to run on your machine. You don't need extra software like MAMP, XAMPP, or WAMP to run Tania, but you may need MySQL database if you choose to use it instead of SQLite (the default database.)

gossa

17 Apr 2020Last Commit274 (161/yr)Github Stars10Issues

a fast and simple webserver for your files, that's dependency-free and with under 200 lines of code, easy to review.

a simple UI comes as default, featuring :

built blobs are available on the release page - or simply make build this repo.

release images are pushed to dockerhub, e.g. :

in a do-one-thing-well mindset, HTTPS and authentication has been left to middlewares and proxies. for instance caddy handles this very well - have a look at this small caddy config with authentication and option for HTTPS that works along with gossa.

sup3rs3cretmes5age

15 May 2020Last Commit262 (96/yr)Github Stars8Issues

A simple, secure self-destructing message service, using HashiCorp Vault product as a backend.

Read more about the reasoning behind this project in the relevant blog post.

Now using Let's Encrypt for simple and free SSL certs!

Running locally will use a self-signed SSL certificate for whatever your local dev domain is. The default is localhost, to change it just pass an argument to make. For example, if you set 127.0.0.1 secret.test in your /etc/hosts you would run locally as:

Try it! (you can ignore the safety warning since it's a self-signed cert)

cherry

24 Jun 2017Last Commit221 (48/yr)Github Stars0Issues

Cherry is a webchat engine wrote in Golang. It brings the main functionalities that you need in a webchat server.

With this application you are able to serve a bunch of rooms from your machine just editing a configuration file in a specific language. So if you are interested you should read the documentation to learn how to master it.

Now SSL connections are supported.

You can use the standard go build or you can use Hefesto.

You need to setup your GOPATH to the project root. Supposing that cherry repo was cloned under /home/doctor/web/git-hub/rafael-santiago/cherry just add this path to your GOPATH.

gonic

23 May 2020Last Commit182 (158/yr)Github Stars16Issues

the default login is admin/admin.
password can then be changed from the web interface

note: unfortunately if you do this above, you'll be compiling gonic locally on your machine (if someone knows how I can statically link sqlite3 and taglib, please let me know so I can distribute static binaries)

or else you can run in docker, available on dockerhub as sentriz/gonic

then start with docker-compose up -d

golinks

02 Feb 2020Last Commit172 (51/yr)Github Stars3Issues

golinks is a web app that allows you to create smart bookmarks, commands and aliases by pointing your web browser's default search engine at a running instance. Similar to bunny1 or yubnub.

There is a formula provided that you can tap and install from prologic/homebrew-golinks:

NB: This installs the latest released binary; so if you want a more recent unreleased version from master you'll have to clone the repository and build yourself.

To startup a container with an image from docker hub, run the following:

hapttic

27 Feb 2019Last Commit111 (38/yr)Github Stars0Issues

Hapttic listens for incoming HTTP connections. When it receives a connection, it dumps all relevant data (headers, path, parameters, the body and other stuff) into a JSON object and calls a bash script with this object as its parameters.

The basic idea is pretty similar. The main advantage of hapttic is ease of setup with a simple Docker image that lets you quickly connect a shell script to a http endpoint.

First, create a request handler at ~/hapttic_request_handler.sh:

Then run the following command to spin up the docker container that runs hapttic:

microproxy

03 May 2020Last Commit100 (16/yr)Github Stars1Issues

microproxy is a lightweight non-caching HTTP/HTTPS proxy server.

This project is written in the Go programming language and to build it you need to install Go compiler and set some enviroment variables. Here is instructions on how to do it. After you've done it, run the following command in your shell:

and this will build the binary in $GOPATH/bin.

microproxy uses TOML format for configuration file. Below is a list of supported configuration options.

To enable debug mode, add -v switch. To only test configuration file correctness add -t switch, i.e. $ ./microproxy --config microproxy.toml -t

gosora

23 May 2020Last Commit99 (28/yr)Github Stars47Issues

A super fast forum software written in Go. You can talk to us on our Discord chat!

The initial code-base was forked from one of my side projects, but has now gone far beyond that. We've moved along in a development and the software should be somewhat stable for general use.

Features may break from time to time, however I will generally try to warn of the biggest offenders in advance, so that you can tread with caution around certain commits, the upcoming v0.1 will undergo even more rigorous testing.

ots

11 May 2020Last Commit41 (15/yr)Github Stars2Issues

ots is a one-time-secret sharing platform. The secret is encrypted with a symmetric 256bit AES encryption in the browser before being sent to the server. Afterwards an URL containing the ID of the secret and the password is generated. The password is never sent to the server so the server will never be able to decrypt the secrets it delivers with a reasonable effort. Also the secret is immediately deleted on the first read.

For a better setup you can choose the backend which is used to store the secrets:

kis3

05 May 2020Last Commit34 (30/yr)Github Stars3Issues

I started to develop KISSS because I need a simple and privacy respecting method to collect visitor statistics of my website. I don't need any fancy dashboard, but I want to get exactly the stats I need. I need something fast, that is able to run even on really low end hardware like a Raspberry Pi.

KISSS is really easy to install via Docker.

Depending on your setup, replace -p 8080:8080 with your custom port configuration. KISSS listens to port 8080 by default, but you can also change this via the configuration.