uart

command module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 24, 2018 License: GPL-3.0 Imports: 2 Imported by: 0

README

It's UART

Build Status Go Report Card Maintainability Test Coverage Coverage Status

UART is an Universal Authorizaion, Role and Team management service software.

UART was developed to succeed my old SiSO project, the original SSO service for Hyeoncheon Project. (which was developed with Ruby on Rails framework with well known Devise, OmniAuth and other open source components.)

UART is written in Go Language and also is built upon many open source software modules including OSIN OAuth2 server library and powered by open source Buffalo Go web development eco-system.

Feature

The main features are below:

  • Support sign on/in with social network accounts
    • currently Google, Facebook, and Github accounts are allowed.
  • (Future Plan) Email address based local authentication will be added soon.
    • This will be used as One-Time-Password option for other authentication.
  • Work as OAuth2 Provider to act as SSO authenticator for family projects.
  • OAuth2 Client App management with optional role based authorization.
    • Role management per each apps.
  • Support standard OAuth2 authorization process.
    • The format of Access Token is JWT(JSON Web Token).
    • Also provide /userinfo API endpoint.
  • Member management and per App roles.

Install

Installation procedure for Ubuntu Linux.

Requirement
Essential Build Environment
$ sudo apt-get update
$ sudo apt-get install build-essential
$ 
Install Golang
$ sudo mkdir -p /opt/google
$ cd /opt/google/
$ rm -f go
$ wget -nv https://storage.googleapis.com/golang/go1.10.linux-amd64.tar.gz -O - |sudo tar zx
$ sudo mv go go-1.10
$ sudo ln -s go-1.10 go
$ cat >> ~/.bashrc <<EOF
> 
> ## GOLANG
> export GOPATH="\$HOME/go"
> export GOROOT="/opt/google/go"
> export PATH="\$PATH:\$GOPATH/bin:\$GOROOT/bin"
> 
> EOF
$ 
$ # source bashrc or restart the shell
$ mkdir $GOPATH
$ cd $GOPATH
$ 
Install Node.js with nvm
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
$ 
$ # source bashrc or restart the shell
$ nvm --version
0.33.2
$ nvm ls-remote --lts |tail -2
        v6.11.1   (LTS: Boron)
        v6.11.2   (Latest LTS: Boron)
$ nvm install lts/boron
$ node --version
v6.11.2
$ npm --version
3.10.10
$ 
Get and Build UART
Get Source
$ mkdir -p $GOPATH/src/github.com/hyeoncheon
$ cd $GOPATH/src/github.com/hyeoncheon
$ git clone https://github.com/hyeoncheon/uart.git
$ cd uart
$ 
Vendoring with Godep
$ go get -u github.com/golang/dep/cmd/dep
$ dep ensure
$ 
Get Buffalo and Build
$ go get -u github.com/gobuffalo/buffalo/buffalo
$ npm install --no-progress
$ buffalo build --static
$ ls bin/uart
$ 
Install Files
$ scripts/keygen.sh
$ mkdir -p $UART_HOME
$ install bin/uart $UART_HOME
$ cp -a messages files locales templates $UART_HOME
$ cp -a uart.conf $UART_HOME
$ cp -a supports/uart.service $UART_HOME
$ 

and register it as system service

$ sudo ln -s /opt/hyeoncheon/uart/uart.service /etc/systemd/system/
$ sudo systemctl is-enabled uart
linked
$ 

Setup and Run

Configure Database

For development,

$ buffalo db create && buffalo db migrate
$ 

or

$ GO_ENV=production buffalo db create && GO_ENV=production buffalo db migrate
$ 

for production.

Run
$ sudo systemctl start uart
$ sudo systemctl status uart
● uart.service - UART server
   Loaded: loaded (/opt/hyeoncheon/uart/uart.service; linked; vendor preset: enabled)
   Active: active (running) since Wed 2017-11-08 19:03:54 KST; 30min ago
 Main PID: 15264 (uart)
    Tasks: 8
   Memory: 7.7M
      CPU: 352ms
   CGroup: /system.slice/uart.service
           └─15264 /opt/hyeoncheon/uart/uart

<...>
$ 

OK, Show Me the Shots

Login Screen

UART Login

Register New App

UART New App

Registered Apps

UART Apps

App Details

UART App Details

Membership

UART Membership

TODO

Author

Yonghwan SO https://github.com/sio4

Copyright 2016 Yonghwan SO

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
examples

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL