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 2.7
installed. Ruby 2.7
is the default version of Ruby.
sudo apt-get install ruby
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
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
For 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-club
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
Now, you need to migrate the database explicitly for production.
RAILS_ENV=production bundle exec rails db:migrate
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
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
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.
RAILS_ENV=production bundle exec rails assets:precompile
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
Congratulations! You have successfully installed Deviser Club. Now, you can go to your domain url and start serving the world through Deviser Club.