Giter VIP home page Giter VIP logo

read.as's Introduction

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.

read.as's People

Contributors

thebaer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

read.as's Issues

Fetch outbox posts on follow

When following a new account, we should fetch existing posts in the user's outbox. Different platforms do things differently, so we need to be able to handle the different outbox formats for each.

  • Mastodon
  • Microblog.pub
  • Pleroma
  • Plume
  • Write.as

SQLite backend

Make single-server set up easier by not requiring MySQL for data persistence.

Follow users from UI

We should add a search box to the feed that lets users follow a new account.

Implementation

This first iteration should just make an async request to /api/follow?user={query} and give a visual indication of whether or not the follow was successful.

Profiles for remote authors

Users should be able to view remote authors as a local page on Read.as. Links to post authors ("by {author}") should point to these pages, instead of the original author URL -- but the local page should include a link to their URL.

idea

i think that you can easily make a Flutter Client so that the app can be on mobile with the golang code behind it.

Here is how to compile golang with gomobile so its a library for flutter
https://github.com/chaim1986/flutter-go

Here is how to show read only articles with Flutter using just html ( if you want)
https://github.com/namiwang/wiki-flutter

I just wanted to point this out as i can see where your going and think that this on peoples mobiles will make it huge.

Also you can run the exact same code on Desktops using flutter go desktop.
https://github.com/Drakirus/go-flutter-desktop-embedder

SO you have Desktop and Mobile covered..

Unable to login

Following the instructions I managed to run the server, and the database connection is working, as I get the "User not found" and "Incorrect password." messages on wrong data. But when using the correct login, the page refresh and show the login form again.

My browsers says the page isn't storing any cookie, so, I gees this is the problem, but I can't find the bug on code.
Tested on Firefox and Chrome-like browser.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.