Long-form ActivityPub-enabled reader.
Clone or download
thebaer Log public URL upon server start
Addresses the issue brought up in #8
Latest commit 5ce563d Oct 14, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Image cmd/readas Add basic application Aug 18, 2018
Image keys Add session management Aug 20, 2018
Image less Style lists, images, videos, iframes better Aug 29, 2018
Image static Add styles Aug 20, 2018
Image templates Support choosing instance name Aug 29, 2018
Image .gitignore Support configuration with JSON file Aug 29, 2018
Image LICENSE Fix LICENSE Aug 18, 2018
Image Makefile Add keys.sh to `make install` Aug 20, 2018
Image README.md Update Patreon URL Sep 30, 2018
Image activitypub.go Don't look for `name` on Note`s Aug 28, 2018
Image app.go Log public URL upon server start Oct 14, 2018
Image build.sh Fix build script Aug 22, 2018
Image config.example.json Support choosing instance name Aug 29, 2018
Image data.go Support configuration with JSON file Aug 29, 2018
Image federation.go Patch actor impersonation via replayed reqs vulnerability Oct 14, 2018
Image handler.go Fix unnecessary logging in handler Aug 20, 2018
Image hostmeta.go Support configuration with JSON file Aug 29, 2018
Image keys.go Add session management Aug 20, 2018
Image keys.sh Add session management Aug 20, 2018
Image nodeinfo.go Support configuration with JSON file Aug 29, 2018
Image post.go Support choosing instance name Aug 29, 2018
Image routes.go Support choosing instance name Aug 29, 2018
Image schema.sql Move local users into users table + store webfinger host Aug 22, 2018
Image session.go Support configuration with JSON file Aug 29, 2018
Image templates.go Remove unused import in templates.go Aug 22, 2018
Image user.go Support configuration with JSON file Aug 29, 2018
Image webfinger.go Support configuration with JSON file Aug 29, 2018

README.md

Read.as

Read.as is a free and open-source long-form reader built on open web protocols (specifically ActivityPub). It helps you gather and curate things to read in a peaceful space.

It's written in Go (golang), and aims to use (minimal) plain Javascript on the frontend.

You can support the development of this project on Patreon or Liberapay, or by becoming a Write.as subscriber.

Features

  • Read Articles from the fediverse
  • Follow fediverse users via ActivityPub
  • Single-user mode

Requirements

  • OpenSSL
  • MySQL

Additional requirements for development

Getting Started

# Set up database
# - Log into MySQL and run:
# CREATE DATABASE readas;
# - Import the schema:
mysql -u YOURUSERNAME -p readas < schema.sql

# Install the application
go get github.com/writeas/Read.as
cd $GOPATH/src/github.com/writeas/Read.as
make install

# Option 1: quick start
export RA_MYSQL_CONNECTION="YOURUSERNAME:YOURPASSWORD@tcp(localhost:3306)/readas"
readas -h "http://localhost:8080" -p 8080

# Option 2: configure and run
# Edit configuration
cp config.example.json config.json
vi config.json

# Create initial account
readas --user matt --pass hunter2

# Launch server
readas

Configuration

host or the -h option should be the public-facing URL your site is hosted at, including the scheme, and without a trailing slash.

port or the -p option will be the port your server runs on. In production, add a reverse proxy like nginx in front of the app and point to localhost:PORT.

For mysql_connection, replace YOURUSERNAME and YOURPASSWORD with your MySQL authentication information, and readas with your database name.

By default, you'll see your site at localhost:8080. Be sure to update the host/-h option accordingly when running locally.

Customizing

Go to the users table in your database to update your account's display name and summary.

Deployment

Use in production at your own risk. This is very early software. Things will change and permanently break without notice, and support is minimal or non-existent while in version 0.x.

Run:

./build.sh

Then copy the generated build directory to your server, into a place like /var/app/readas. Add a reverse proxy like Nginx, export your production RA_MYSQL_CONNECTION string on your machine, and from your install directory, run readas -h "https://yourdomain.com".

Development

After updating styles, run make.

After changing any code, run go install ./cmd/readas && readas -h "http://localhost:8080"

Contributing

Feel free to open issues for any bugs you encounter, and submit any pull requests you think would be useful. To request features and discuss development, please see our forum.