Coder Social home page Coder Social logo

haven's Introduction

Haven

Haven is a simple blog application (formerly called SimpleBlog) built with Ruby on Rails, some motivating philosophies:

  • Privacy-first. This is for sharing with friends and family, not commercial endevors. If you want a blog for your company, you probably want to use WordPress instead
  • Easy to use.
  • Low-bandwidth friendly. Images get downscaled to reduce page load times. No javascript frameworks. No ads or trackers.
  • Customizable. If you want to add custom CSS, you can do that
  • No spam. There is no self-signup for users so there is no place for unauthorized users to impact your life

Deployment

AWS

  • Register an account with AWS, the included scripts deploy to an AWS EC2 instance
  • Buy a domain with AWS route 53, this is the domain that will point to the blog
  • Setup your AWS credentials: https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-credentials.html
  • Clone this project onto your computer (tested with Mac OS Mojave and Ubuntu 18.04)
  • Go to the deploymentscripts folder
  • Execute ruby deploy-aws.rb <domain> "<email>"
    • Put your email address in quotes, this email is used for registering your HTTPS certificate
  • Wait. Deployment can take 20 minutes.
  • The script will show you your login information, enjoy your blog
  • Note: if anything goes wrong, you can run ruby cleanup-aws.rb <domain> to tear down everything the script created
  • If you get this error: cannot load such file -- aws-sdk-ec2 (LoadError), then type gem install aws-sdk and try again

Raspberry Pi (Only tested with Pi Zero W)

Note, this requires a little bit more technical knowledge. You know know how to flash an SD card and how to use the tools ssh and scp. You should also be able to configure your own DNS and port forwarding. We're doing this fully headless, not plugging in a display or mouse/keybord to the Raspberry Pi.

  • Configure your DNS to point to your home IP address.
  • Flash a micro SD card with Raspbian-Lite (Feb 2020)
  • Enable SSH and Wifi: https://raspberrytips.com/raspberry-pi-wifi-setup/
  • Insert the card into the Pi, and turn it on
  • Make sure you can SSH to the Pi, then copy deploymentscripts/deploy-pi.sh from this repository to the Pi's home directory
    • Note, the script assumes your default home directory of /home/pi and that you're using the default pi user.
  • Configure your home router to forward port 80 (http) and 443 (https) to the Raspberry Pi.
    • You might also want/need to configure a static IP address for the Raspberry Pi.
  • SSH to the Pi and run: bash deploy-pi.sh DOMAIN "YOUREMAIL"
  • Wait. On the Raspberry Pi Zero W, installation can take over three hours.
  • The script will give you your initial login information, enjoy your new blog!
  • Note, there are no backups setup. You may want to backup the database (PostgreSQL) and uploaded images (/home/pi/simpleblog/storage).

haven's People

Contributors

dependabot[bot] avatar felipecocco avatar jblz avatar mawise avatar

Watchers

 avatar

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.