Giter VIP home page Giter VIP logo

deviser-club's Introduction

Deviser Club : A Multi Blogging Platform with Ruby On Rails

Open source medium alternative: A discussion club for devised people

Deviser Club is developed with the heart of publishers freedom and author's authority, with better audience experience. No overly complexified stuff here, simple is better than complex.

Ruby on Rails 7 is used to develop this blogging platform. It is still on development mode, any one who is willing to contribute is welcomed.

Installation

You can install Deviser Club in two main ways; Straight Forward Installation and Docker Installation. I am still figuring out the docker part. So, I will make a straight forward installation guide for now.

Straight Forward Installation

To install Deviser Club, you need to have Ruby 3.0.0 installed. Ruby 3.0.0 should be installed in the system, you can use RVM or any other version manager.

Install RVM, ruby3.0.0 and run bundle...

rvm install "ruby-3.0.0"

If some permission issues pop while installing Ruby 3 with RVM, try below code:

rvmsudo rvm get stable --auto-dotfiles
rvm fix-permissions system
rvm group add rvm $USER
rvm fix-permissions user
rvmsudo rvm get stable --auto-dotfiles
rvm install "ruby-3.0.0"
rvm fix-permissions system; rvm fix-permissions user

Now you have to install a dependency for OG Image generation Deviser Club.

sudo apt install ruby-rmagick

Now you call install Rails 7.0.3 and other essential gems by using bundle install

$ bundle install

Development Essentials

To start the development, you need to create a development database.

rails db:create

Then, you need to migrate the database.

rails db:migrate

For mailing in development, our Deviser Club uses mailcatcher, which will automatically get install while doing bundle install

Start the server

./bin/dev

Production Essentials and Deployment

For production, you need to create a production database, manage some paths and you're good to go.

Git Clone

Go to cd ~/ and then git clone https://github.com/Bishwas-py/deviser-club.git, and then cd inside the folder.

cd ~/deviser-club
Database

Create a postgresql (or any well functioning database you want) user and database

sudo -u postgres psql postgres
create database deviser_club_database_name;
create user deviser_club_database_username with encrypted password 'deviser_club_database_password';
grant all privileges on database deviser_club_database_name to deviser_club_database_username;

Now, copy the database.yml.sample to database.yml

cp config/database.yml.sample config/database.yml

And then, inside your database.yml edit the given credentials for the database. You have to replace database name, username and password with deviser_club_database_name, deviser_club_database_username and deviser_club_database_password respectively.

default: &default
  adapter: sqlite3
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000
...
production:
  adapter: postgresql
  encoding: unicode
  host: localhost
  pool: 5
  database: deviser_club_database_name
  username: deviser_club_database_username
  password: deviser_club_database_password
Run migration

Now, you need to migrate the database explicitly for production.

RAILS_ENV=production bundle exec rails db:migrate
Email Setup

Do rails credentials:edit for setting environment variable for email.

For that, type following commands

RAILS_ENV=production bundle exec EDITOR=vim rails credentials:edit
# probably you might need sudo authority

Now, add the following data below of the file according to your choice.

mail:
     method: :smtp
     from_email: 'Platform Name <[email protected]>' 
     host_name: platform.club
     address: host.ip.address
     domain: platform.club
     port: 587
     user_name: smtp_username
     password: smtp_password

# replace `platform` with your platform name
Check server

Allow port 3000 by ufw or equivalent, and go to http://SERVER.PUBLIC.IP.ADDRESS:3000, and it'll show your webapp, which is the sign of good installation.

RAILS_ENV=production bundle exec rails s -p 3000
Deployment

To deploy your app, you need to install capistrano and capistrano-rails must of the time. If you want that you can do that too but for me, I like doing things manually.

Make assets
RAILS_ENV=production bundle exec rails assets:precompile
Setup Nginx

Make a file in /etc/nginx/sites-enabled called deviser-club.

server {
  listen 80;
  listen [::]:80;
 
  server_name example.com; # your site domain like: deviser.club
  root /home/server_user/deviser-club/public;

  passenger_enabled on;
  passenger_app_env production;

  location /cable {
    passenger_app_group_name deviser-club_websocket;
    passenger_force_max_concurrent_requests_per_process 0;
  }

  # Allow uploads up to 100MB in size
  client_max_body_size 100m;

  location ~ ^/(assets|packs) {
    expires max;
    gzip_static on;
  }
}

Now, restart nginx.

sudo service nginx restart

Check, nginx status.

sudo service nginx status

โ— nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en>
     Active: active (running) since Sun 2022-08-07 19:09:01 UTC; 7h ago

Hooray! You have successfully installed Deviser Club

Congratulations! You have successfully installed Deviser Club. Now, you can go to your domain url and start serving the world through Deviser Club.

Preview

Here are some screenshots of deviser club open source medium alternative: deviser club

Thanks for reading!

deviser-club's People

Contributors

bishwas-py avatar diwash007 avatar lucascarrias avatar yshmarov 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

Watchers

 avatar  avatar  avatar  avatar

deviser-club's Issues

Upate Dockerfile

The current Ruby version of the project is 3.0.0.

However the Dockerfile is outdated with ruby:2.7.0-alpine

Setup the testing environment

So far this project doesn't seem to have proper testing coverage.
In my opinion, a proper testing environment can improve the health and consistency of this current project.

With that said I suggest these improvements:

All gems above are from personal preference, however, they're pretty common in many projects.

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.