2020-02-21 16:13:54 -05:00
|
|
|
# SecretShop: a small Gemini server.
|
2020-02-12 20:29:32 -05:00
|
|
|
|
2020-02-21 16:13:54 -05:00
|
|
|
## Features
|
2020-02-19 15:26:46 -05:00
|
|
|
* Multi-site hosting
|
2020-02-20 17:03:34 -05:00
|
|
|
* Also supports simple Gopher hosting
|
2020-02-12 20:52:11 -05:00
|
|
|
* Fully compliant with Jetforce diagnostics
|
|
|
|
* Probably won't kill your computer
|
2020-02-12 20:29:32 -05:00
|
|
|
|
2020-05-14 20:34:07 -04:00
|
|
|
|
|
|
|
## Where to get it
|
|
|
|
git clone https://git.saintnet.tech/stryan/secretshop.git
|
|
|
|
|
|
|
|
I also release binaries at https://build.opensuse.org/project/show/home:stryan
|
|
|
|
|
2020-05-14 21:17:26 -04:00
|
|
|
The release tab also has pre-generated archives if you don't want to run master.
|
|
|
|
|
2020-02-21 16:13:54 -05:00
|
|
|
## Configuration
|
2020-02-12 20:29:32 -05:00
|
|
|
SecretShop looks in it's current running directory and /etc/secretshop for it's config file.
|
|
|
|
Configuration is in config/yaml in one of the above directories. See the sample config for more details
|
|
|
|
but a standard file looks like such:
|
|
|
|
|
2020-02-21 16:13:54 -05:00
|
|
|
---
|
2020-02-22 16:17:38 -05:00
|
|
|
port: 1965
|
2020-02-21 16:13:54 -05:00
|
|
|
active_capsules:
|
|
|
|
- localhost
|
|
|
|
localhost:
|
|
|
|
Hostname: "localhost"
|
|
|
|
Port: "1965"
|
|
|
|
RootDir: "/var/gemini"
|
|
|
|
CGIDir: "/var/gemini/cgi"
|
|
|
|
KeyFile: "localhost.key"
|
|
|
|
CertFile: "localhost.crt"
|
2020-02-12 20:29:32 -05:00
|
|
|
|
2020-02-22 16:17:38 -05:00
|
|
|
Where each "active_capsule" is a virtual Gemini capsule. SecretShop supports virtual Gemini capsules all listening on port 1965
|
|
|
|
as well as multiple Gopher servers runnning (though not virtual Gopher hosts due to protocol limitations)
|
|
|
|
|
2020-02-21 16:13:54 -05:00
|
|
|
## Building
|
2020-04-27 16:02:23 -04:00
|
|
|
Build Dependencies: go1.14
|
|
|
|
|
2020-02-21 16:13:54 -05:00
|
|
|
Running "make" should work for any given x86 machine.
|
|
|
|
|
|
|
|
If you're planning on running this on a Raspberry Pi or other ARM machine try
|
|
|
|
env GOOS=linux GOARCH=arm GOARM=5 make
|
|
|
|
|
|
|
|
## Installation
|
2020-02-21 16:10:08 -05:00
|
|
|
Running "make install" will install to /usr/local/bin by default.
|
|
|
|
|
|
|
|
Running "make service" will install to /usr/local/bin and also install the systemd service file
|
|
|
|
|
2020-02-21 16:13:54 -05:00
|
|
|
## Uninstall
|
|
|
|
Simply run "make uninstall".
|
2020-02-21 16:10:08 -05:00
|
|
|
|
2020-02-21 16:13:54 -05:00
|
|
|
## Running
|
2020-02-12 20:29:32 -05:00
|
|
|
Either run the executable directly or use the SystemD unit file
|
2020-04-27 16:01:08 -04:00
|
|
|
|
|
|
|
## Caveats
|
2020-05-14 18:17:44 -04:00
|
|
|
Currently does not support transient certificates
|
|
|
|
Only handles whitelisting for certificate authorization
|
2020-05-14 19:49:10 -04:00
|
|
|
|
|
|
|
## Licensing
|
|
|
|
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, see <https://www.gnu.org/licenses/>.
|