All Projects → ishani → xSyn

ishani / xSyn

Licence: MIT License
Compact server implementing xBrowserSync API using Golang and BoltDB

Programming Languages

go
31211 projects - #10 most used programming language
Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to xSyn

Wiki
A tiny wiki using BoltDB and Blackfriday
Stars: ✭ 185 (+516.67%)
Mutual labels:  boltdb
boltcli
boltcli is the redis-cli for boltdb with Lua script support
Stars: ✭ 25 (-16.67%)
Mutual labels:  boltdb
awesome-bookmarking
🔖 Everything bookmarking related
Stars: ✭ 56 (+86.67%)
Mutual labels:  bookmarks-manager
Bolter
Command-line app for viewing BoltDB file in your terminal
Stars: ✭ 222 (+640%)
Mutual labels:  boltdb
top-of-reddit
Top Reddit posts every day.
Stars: ✭ 22 (-26.67%)
Mutual labels:  boltdb
Bookmark-Manager
This is a modified and restored version of the extension 'Bookmark Manager' by Google.
Stars: ✭ 50 (+66.67%)
Mutual labels:  bookmarks-manager
Storm
Simple and powerful toolkit for BoltDB
Stars: ✭ 1,814 (+5946.67%)
Mutual labels:  boltdb
osmosmemo
Turn GitHub into a bookmark manager
Stars: ✭ 120 (+300%)
Mutual labels:  bookmarks-manager
webmarks
remoteStorage-enabled bookmarking app
Stars: ✭ 65 (+116.67%)
Mutual labels:  bookmarks-manager
browzica
Use browzica to keep track of your bookmarks
Stars: ✭ 18 (-40%)
Mutual labels:  bookmarks-manager
Golang Url Shortener
URL Shortener written in Golang using Bolt DB or Redis. Provides features such as Deletion, Expiration, OAuth and is of course Dockerizable.
Stars: ✭ 240 (+700%)
Mutual labels:  boltdb
bookmarks
在线书签管理系统
Stars: ✭ 19 (-36.67%)
Mutual labels:  bookmarks-manager
visited
Securely collect browsing history over browsers.
Stars: ✭ 60 (+100%)
Mutual labels:  bookmarks-manager
Quickshare
Quick and simple file sharing between different devices.
Stars: ✭ 190 (+533.33%)
Mutual labels:  boltdb
shiori
Shiori is a simple bookmark manager
Stars: ✭ 66 (+120%)
Mutual labels:  bookmarks-manager
Cachego
Golang Cache component - Multiple drivers
Stars: ✭ 148 (+393.33%)
Mutual labels:  boltdb
thunder
BoltDB's Interactive Shell
Stars: ✭ 80 (+166.67%)
Mutual labels:  boltdb
Shaarli
The personal, minimalist, super-fast, database free, bookmarking service - community repo
Stars: ✭ 2,583 (+8510%)
Mutual labels:  bookmarks-manager
permissionbolt
🔩 Middleware for keeping track of users, login states and permissions
Stars: ✭ 81 (+170%)
Mutual labels:  boltdb
browser-extension
Add links to WebCrate via a browser extension
Stars: ✭ 25 (-16.67%)
Mutual labels:  bookmarks-manager

xSyn Logo

Compact server implementing xBrowserSync API using Golang and BoltDB; supports API version 1.1.4 (Oct 2018)

Easy to deploy via Docker, xSyn provides a lean server for privately hosting your own bookmarks sync store. As of writing, xBrowserSync is available for Chrome, Firefox, Android - It's really good!

Configuring

xSyn pulls configuration from a TOML file during boot and allows environment variable overloads for all the values. Easy to setup and easy to tune.

Check prod.toml for all available settings and override names.

Securing

xSyn can be run unsecured, with TLS via provided keys or automatically secured via Let's Encrypt.

It is possible to run a special route that toggles the Accepting New Syncs value while running, so one can open/close the gates on a public server to limit users manually.

Rate-limiting is enabled by default on all routes and is easily configurable.


DockerHub

An up-to-date build is available at hdenholm/xsyn:latest

Note that build dates are stamped into the published images, which you can view in the log on startup (with release_mode / XS_SRV_RELEASE set to false so you can see the Info logs)

Azure

I have a test instance running on Azure using their slightly restrictive Docker support for App Services.

In the portal, navigate to Application Settings, make sure WEBSITES_ENABLE_APP_SERVICE_STORAGE is enabled. With a default configuration file, add WEBSITES_PORT and set it to 80 - remember to update it if you set the port / XS_SRV_PORT config value.

Because Azure doesn't let you manually configure volume mapping, we have to override the default file for the BoltDB. Set XS_BOLT_FILE to /home/site/store.db (or anything under the /home/site folder)

Note that currently there is no way to use Let's Encrypt on Azure App Services as of writing as it requires more than one port to be exposed, and Azure doesn't allow this.

AWS

xSyn works on ECS easily, including full Let's Encrypt support if you assign an EIP and map it to an owned domain.

I have a simple example task template over here - tested, but not a lot. Note this has LE enabled, so either disable that or set your own domain name up before you kick it off.


Todo

  • Tests

As it stands, xSyn works great for a private xBrowserSync server - I've been running with it for about a year - and I've poked it about on a few different platforms, but it really needs some actual tests and fuzzing done

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].