A LICENSE => LICENSE +32 -0
@@ 0,0 1,32 @@
+Copyright (c) 2023, Peter Sanchez (pjs@petersanchez.com)
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or
+without modification, are permitted provided that the
+following conditions are met:
+
+ * Redistributions of source code must retain the above
+ copyright notice, this list of conditions and the
+ following disclaimer.
+
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials
+ provided with the distribution.
+
+ * Neither the name of Peter Sanchez nor the names of its
+ contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
A README.md => README.md +112 -0
@@ 0,0 1,112 @@
+GoHome
+----
+
+A simple app that let's you self host your Go modules using your own domains.
+
+Example: `yourdomain.com/x/your-module`
+
+## Why?
+
+I got annoyed with my nginx hacks as they kept getting longer and longer to
+support some modules.
+
+Then I moved some projects from Mercurial to Git and had to update various
+projects for the new path. This was also very annoying.
+
+I looked for something to solve this issue for me but I didn't find anything
+that scratched my itch. So I just wrote the solution I wanted.
+
+## Details
+
+**Project Links:** [Issues][issues] - [Mailing List][pinbox] -
+[Contributing](#contributing)
+
+[issues]: https://todo.code.netlandish.com/~petersanchez/gohome
+[pinbox]: https://lists.code.netlandish.com/~petersanchez/public-inbox
+
+## Requirements
+
+- It was written for Go 1.20+
+- sqlite3
+- GNU Make
+
+# Installation
+
+ $ git clone https://git.code.netlandish.com/~petersanchez/gohome
+ $ cd gohome
+ $ make # (or gmake)
+ $ cp config.example.ini config.ini
+ $ vim config.ini # use your favorite editor
+ $ ./gohome migrate
+ $ ./gohome
+
+Now load your install in a web browser. For instance, if this is on a local
+development machine the defaults in `config.example.ini` are
+`http://127.0.0.1:8000/x/--admin--`
+
+You'll be asked to set the default password. This is needed when adding/editing
+modules to the database. Once set you'll be asked to login, enter the same
+password you just set.
+
+Now just click the `Add` button and add your modules.
+
+If you're installing this behind a reverse proxy (ie, nginx) you'll need to add
+the configuration for the path you're using. Here's an example from my
+nginx config for a domain I have this running on:
+
+ location /x/ {
+ proxy_pass http://127.0.0.1:6001;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+
+## Configuration
+
+The `config.example.ini` is pretty straight forward with comments to help.
+Really just change the `connection-string` and `root` variables and that's
+probably the only thing you need to change.
+
+## Contributing
+
+We accept patches [submitted via email][gitemail] to our mailing list. For an
+easy and quick tutorial on how to do this, see https://git-send-email.io
+
+Please see our [contributing document][cdoc] for more information.
+
+The mailing list where you submit your patches is
+`~petersanchez/public-inbox@lists.code.netlandish.com`. You can also view the
+archives on the web here:
+
+https://lists.code.netlandish.com/~petersanchez/public-inbox
+
+To quickly setup your clone of `gohome` to submit to the mailing
+list run the following commands:
+
+ $ git config sendemail.to "~petersanchez/gohome@lists.code.netlandish.com"
+
+ $ git config format.subjectPrefix "PATCH gohome"
+
+We have more information on the topic here:
+
+- [Contributing][cdoc]
+- [Using email with Git][gitemail]
+- [Mailing list etiquette][etiquette]
+
+[etiquette]: https://man.code.netlandish.com/lists/etiquette.md
+[gitemail]: https://man.code.netlandish.com/git/email.md
+[cdoc]: https://man.code.netlandish.com/contributing.md
+
+## Copyright & Warranty
+
+All documentation, libraries, and sample code are Copyright 2023
+Peter Sanchez. <<pjs@petersanchez.com>>. The
+library and sample code are made available to you under the terms of the
+BSD license which is contained in the included file, `LICENSE`.
+
+## Commercial Support
+
+This software, and lots of other software like it, has been built in
+support of many of Netlandish's own projects, and the projects of our
+clients. We would love to help you on your next project so get in touch
+by dropping us a note at <hello@netlandish.com>.
M config.example.ini => config.example.ini +2 -17
@@ 1,22 1,17 @@
[gobwebs]
+# What IP/Host and Port should the server listen on
listen-address = localhost
listen-port = 8000
-environment=development
# Options: debug, normal
# Default is debug
-server-mode=debug
+server-mode=normal
# How to manage email.
# Options: console, smtp
# Default: console
email-service=console
-# File storage
-# Options: fs, s3
-# Default: fs
-storage-service=fs
-
# Admin email
admin-email=admin@yourdomain.com
@@ 27,9 22,6 @@ default-from-email=gohome@yourdomain.com
# Default: true
email-admin-errors=true
-# Language
-default-language=en
-
scheme=https
domain=yourdomain.com
@@ 37,13 29,6 @@ domain=yourdomain.com
# Path to sqlite3 db file
connection-string = /path/to/gohome.db
-[storage]
-# Section for file storage variables
-
-# If storage service is fs, then set root-directory
-# Defaults to: ./
-root-directory=./
-
[gohome]
# Set to the value of the root URL path. Ie, if the repo URL is
# yourdomain.com/x/repo-name then the root value is 'x'. leave blank