Giter Site home page Giter Site logo

gpanel's Introduction

gPanel

A web-hosting control panel written in Go.

Note: This software currently only runs on Linux systems.

Table of Contents

  1. Technology Stack
  2. Preview Images
  3. Contribution Set-up & Deployment
  4. Installation for Use

Technology Stack

Backend: Go (1.9.2+)
Database: Bolt
CSS Toolkit(s): Bootstrap 4 & Font Awesome
JS Toolkit(s): jQuery

Preview Images

gPanel Structure Image of gPanel Structure

gPanel Server Image of gPanel Server

gPanel Account Image of gPanel Account

Contribution Set-up & Deployment

To get the repo...

# Go get the repo and append it to your $GOPATH
go get github.com/kentonh/gPanel

# Navigate to the directory (replace $GOPATH with your actual $GOPATH)
cd $GOPATH/github.com/kentonh/gPanel

To set your repo up to contribute...

# Fork the repo and add it to the list of remotes (replace your-username with your github username)
git remote add fork https://github.com/your-username/gPanel.git

# OPTIONAL: Change the names of the remotes
git remote rename origin upstream
git remote rename fork origin

To deploy...

# Build the binary
go build gpanel.go

# Execute binary as root (root access is needed for functions within the system package)
sudo ./gpanel

Installation for Use

System Requirements

  • Linux
    • adduser command (already installed on most debian-based Linux systems)
    • deluser command (already installed on most debian-based linux systems)
    • ssh-keygen command (already installed on most debian-based linux systems)
    • openssh-server installed (installation guide below)
    • golang (installation guide below)
    • php-cgi IF you want to be able to serve .php files
  • OSX
    • Currently there is no support for OSX, but it is planned for the future.

Installing Golang

  1. sudo apt-get purge golang*
  2. Download latest version from https://www.golang.org/dl/
  3. sudo tar -C /usr/local -xzf go[VERSION].[OS]-[ARCH].tar.gz
  4. For system-wide installation (reccommended) a. vim /etc/profile b. Add "export PATH=$PATH:/usr/local/go/bin"
  5. For local installation a. If ~/.profile doesn't exist then create it (touch ~/.profile) b. Add "export PATH=$PATH:/usr/local/go/bin" to said file
  6. Logout and login for changes to /etc/profile or ~/.profile to take effect
  7. mkdir ~/go && mkdir ~/go/bin && mkdir ~/go/src && mkdir ~/go/pkg
  8. GOROOT=~/go

Installing openssh-server

  1. sudo apt-get install openssh-server
  2. sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.default
  3. sudo vim /etc/ssh/sshd_config
  4. Uncomment (no # before line) and/or set the following lines in /etc/ssh/sshd_config
    • PermitRootLogin no
    • AuthorizedKeysFile %h/.ssh/authorized_keys
    • PasswordAuthentication no
    • PermitEmptyPasswords no
    • RSAAuthentication yes
    • PubkeyAuthentication yes
  5. sudo systemctl restart ssh

Creating the Host Key-pair

  1. ssh-keygen -t rsa -N "PASSWORD" -f ~/.ssh/id_rsa [change PASSWORD]

.ssh Folder and Files Permissions Reference

  1. To check permissions a. cd ~/.ssh b. ls -l -a (look at ls -l -a dump below)
  2. To change permissions a. chmod [PERMISSIONS NUMBER] [FILE]
  3. To change ownership a. chown [USER]: [FILE]

.ssh [700 && owned by correct user]
    id_rsa [600 && owned by correct user]
    id_rsa.pub [644 && owned by correct user]
    authorized_keys [644 && owned by correct user]
    known_hosts [644 && owned by the correct user]

Correct output of ls -l -a of ~/.ssh

drwx------ 2 root root 4096 Jan 17 14:49 .  
drwx------ 7 root root 4096 Jan 17 14:42 ..  
-rw-r--r-- 1 root root    0 Jan 17 14:49 authorized_keys  
-rw------- 1 root root 1766 Jan 17 14:43 id_rsa  
-rw-r--r-- 1 root root  401 Jan 17 14:43 id_rsa.pub  
-rw-r--r-- 1 root root  444 Oct 10  2016 known_hosts

Getting the Repository and Running

  1. go get github.com/kentonh/gPanel
  2. cd ~/go/src/github.com/kentonh/gPanel
  3. go build gpanel.go
  4. sudo ./gpanel

gpanel's People

Contributors

aaronarduino avatar blunket avatar byra avatar george-e-shaw-iv avatar jcbwlkr avatar justyntemme avatar kentonh avatar paperpanks avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.