aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md96
1 files changed, 96 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..fb0d872
--- /dev/null
+++ b/README.md
@@ -0,0 +1,96 @@
+Fietsboek
+=========
+
+Fietsboek is a self-hostable sharing site for GPX track recordings with social
+features. The goal is to have an application like [MyTourbook][MyTourbook] that
+runs as a web-service and allows sharing and discovering of new tracks.
+
+Note that Fietsboek is early in development and a hobby project, as such many
+features are still lacking.
+
+[MyTourbook]: https://mytourbook.sourceforge.io/mytourbook/
+
+Installation
+------------
+
+- Generate a fresh virtual environment (recommended):
+
+ virtualenv .venv
+
+- Install `fietsboek`:
+
+ .venv/bin/pip install .
+
+- (Optionally: Install `lxml` to speed up GPX parsing)
+
+ .venv/bin/pip install lxml
+
+- Adjust `production.ini` to your needs, mainly check the following settings:
+
+ sqlalchemy.url - see https://docs.sqlalchemy.org/en/14/core/engines.html#database-urls
+ session_key - set this to a random secret which is used to sign session keys
+ available_locales - set this to the list of locales you want to support
+ (by default, English and German translations are shipped)
+ enable_account_registration - whether users should be able to create new accounts
+ (set this to false for a private instance)
+ pyramid.default_locale_name - set the default language
+ email.from - the address that Fietsboek email's will be sent from
+ email.smtp_url - the URL of the SMTP server to send emails
+ (smtp://host:port, smtp+ssl://host:port, smtp+starttls://host:port)
+ email.smtp_user, email.smtp_password - SMTP login information
+
+- Create the database tables:
+
+ .venv/bin/alembic -c production.ini upgrade head
+
+- Start Fietsboek:
+
+ .venv/bin/pserve production.ini
+
+This runs Fietsboek using Pyramid's [Waitress](https://docs.pylonsproject.org/projects/waitress/en/stable/index.html)
+server. If you need a better performance, read [the corresponding
+section](https://docs.pylonsproject.org/projects/waitress/en/stable/index.html)
+in the Pyramid documentation and set up Fietsboek using an alternative server,
+such as `gunicorn` or `mod_wsgi`.
+
+Note that it is advised to use a reverse proxy in front of Fietsboek to handle
+SSL. **Not setting up a SSL capable reverse proxy puts the security of your
+users at risk!**
+
+Development
+-----------
+
+- Setup the environment:
+
+ virtualenv .venv
+ .venv/bin/pip install -e '.[testing]'
+
+- Adjust `development.ini` to your needs
+- Initialize the database:
+
+ .venv/bin/alembic -c development.ini updgrade head
+- Serve the code:
+
+ .venv/bin/pserve development.ini --reload
+
+- Hack away!
+
+License
+-------
+
+ Fietsboek, the GPX web sharing project
+ Copyright (C) 2022 Daniel Schadt
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero 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 Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+