The GOP Server is an open-source web server for Linux and Windows systems that handles HTTP requests to scripts programmed in Go returning the result of the execution to the client.
The software is able to, depending on the requested path, return static files or execute Go scripts, which are compiled on the fly and have specific functionality. This functionality is transparently embedded by the GOP Server into the script files to provide them with functions inherent to web application development such as URL parameter management, cookie management, session management, includes a library of basic functions and database support.
GOP scripts are .gop files coded in Go but that follow the GOP specification, a superset of Go defined to integrate the extra functionality provided by the server.
In summary, the server allows to easily develop web applications programmed in Go with the comfort and functionality analogous to PHP, which makes it a multipurpose tool capable of being used both in educational environments to learn the language and in development and production environments for web applications or HTTP APIs.
The software has just been released an has to be considered as beta, as might contain bugs and/or security vulnerabilities. Audit the code before using it in production enviroments. The software is provided as is without warranty of any kind.
The steps are simple: install Golang, clone the repository and execute from source (go run).
Then, place your files under the /public directory and access them from http://localhost:80.
Install Golang from https://golang.org/doc/install
Clone the repository.
Edit the configuration if needed (config/configuration.json)
Open a terminal inside the GOP-Server folder.
sudo apt update
sudo apt install golang
git clone https://github.com/i-rme/GOP-Server.git
cd GOP-Server
nano config/configuration.json
sudo go run src/main.go
go run src/main.go
wsl sudo go run src/main.go
Enable database support by setting MySQLSupportEnabled to true
in the config file.
Enable privilege downgrade by setting RunScriptsAsNobody to true
in the config file.
Configuration file: ./config/configuration.json
Default document root: ./public
Default log directory: ./logs
Default uploads directory: ./private/uploads
CMS Example database details: ./public/examples/cms/components/repository.gop
Error: CreateFile src/main.go: The system cannot find the path specified. when launching the GOP Server with go run.
Solution: Navigate to the GOP-Server directory before launching. cd GOP-Server
Error: "no required module provides package" when MySQL support is enabled.
Solution: Install the missing package using go get github.com/go-sql-driver/mysql
Error: "listen tcp 127.0.0.1:80: bind: permission denied" when starting the server on linux.
Solution: Run the server with root privileges sudo go run src/main.go