• Stars
    star
    146
  • Rank 252,769 (Top 5 %)
  • Language
    Go
  • License
    GNU Affero Genera...
  • Created over 6 years ago
  • Updated about 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Long-form ActivityPub-enabled reader.

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.

More Repositories

1

writeas-cli

Command line client for Write.as / WriteFreely
Go
112
star
2

htmlhouse

βŒ‚ Publish HTML quickly / 🐴 Develop a WriteFreely theme
HTML
97
star
3

go-strip-markdown

Remove Markdown formatting. Written in Go.
Go
53
star
4

go-writeas

Go client for the Write.as API
Go
22
star
5

writeas-gtk

Write.as desktop app for elementaryOS (a fork of writeas-gtk)
Go
21
star
6

web-core

Core components of the web application.
Go
20
star
7

siteshot

Website screenshot capturer written in Go.
Go
18
star
8

activityserve

A very light ActivityPub library in Go
Go
17
star
9

cmd

Simple command line pastebin.
Go
12
star
10

nerds

Simple telnet server for write.as
Go
12
star
11

wp-import

Import your WordPress blog to Write.as
Go
10
star
12

go-nodeinfo

NodeInfo server implemented in Go
Go
10
star
13

go-ghost

Go library for the Ghost API
Go
8
star
14

writeas-api

Documentation and example uses of the Write.as API.
7
star
15

paste-chrome

Write.as for Chrome
JavaScript
4
star
16

wf-migrate

Tools for migrating between WriteFreely instances.
Go
2
star
17

libwriteprivate

A Go library for encrypting and decrypting text with a passphrase.
Go
2
star
18

zip-import

Import an archive of txt files to Write.as / WriteFreely
Go
2
star
19

java-writeas

Java client for the Write.as API.
Java
2
star
20

go-mobiledoc

A Go library for working with Mobiledoc data
Go
1
star
21

impart

Utilities for a JSON-based API.
Go
1
star
22

android-writeas

Write.as Android app
1
star
23

core-api

Go
1
star
24

preview-ext

A browser extension to preview your posts
JavaScript
1
star
25

activityserve-example

A simple go app that uses activityserve to create an actor and post hello to the world
Go
1
star
26

policy

Write.as policies.
1
star