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.
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.
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 userNow you have to install a dependency for OG Image generation Deviser Club.
sudo apt install ruby-rmagickNow you call install Rails 7.0.3 and other essential gems by using bundle install
$ bundle installTo start the development, you need to create a development database.
rails db:createThen, you need to migrate the database.
rails db:migrateFor mailing in development, our Deviser Club uses mailcatcher, which
will automatically get
install while doing bundle install
Start the server
./bin/devFor production, you need to create a production database, manage some paths
and you're good to go.
Go to cd ~/ and then git clone https://github.com/Bishwas-py/deviser-club.git,
and then cd inside the folder.
cd ~/deviser-clubCreate 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.ymlAnd 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_passwordNow, you need to migrate the database explicitly for production.
RAILS_ENV=production bundle exec rails db:migrateDo 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 authorityNow, add the following data below of the file according to your choice.
mail:
method: :smtp
from_email: 'Platform Name <no-reply@platform.club>'
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 nameAllow 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 3000To 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.
RAILS_ENV=production bundle exec rails assets:precompileMake 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 restartCheck, 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 agoCongratulations! You have successfully installed Deviser Club. Now, you can go to your domain url and start serving the world through Deviser Club.
Here are some screenshots of deviser club

Thanks for reading!