{"id":22969308,"url":"https://github.com/bishwas-py/deviser-club","last_synced_at":"2025-08-13T11:32:39.754Z","repository":{"id":46144854,"uuid":"515124294","full_name":"Bishwas-py/deviser-club","owner":"Bishwas-py","description":"An open source blogging platform for devised people: Medium alternative","archived":false,"fork":false,"pushed_at":"2022-08-31T08:31:37.000Z","size":4424,"stargazers_count":97,"open_issues_count":4,"forks_count":9,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-11-08T23:35:27.327Z","etag":null,"topics":["blogger","blogging","blogging-system","database","ruby"],"latest_commit_sha":null,"homepage":"https://deviser.club","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause-clear","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Bishwas-py.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-07-18T09:49:54.000Z","updated_at":"2024-09-19T11:53:13.000Z","dependencies_parsed_at":"2023-01-16T16:45:46.171Z","dependency_job_id":null,"html_url":"https://github.com/Bishwas-py/deviser-club","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bishwas-py%2Fdeviser-club","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bishwas-py%2Fdeviser-club/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bishwas-py%2Fdeviser-club/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bishwas-py%2Fdeviser-club/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Bishwas-py","download_url":"https://codeload.github.com/Bishwas-py/deviser-club/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229759804,"owners_count":18119870,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blogger","blogging","blogging-system","database","ruby"],"created_at":"2024-12-14T21:35:24.060Z","updated_at":"2024-12-14T21:35:24.619Z","avatar_url":"https://github.com/Bishwas-py.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Deviser Club : A Multi Blogging Platform with Ruby On Rails\n\u003e Open source medium alternative: A discussion club for devised people\n\n[Deviser Club](http://deviser.club/) is developed with the heart of publishers\nfreedom and author's authority, with better audience experience. No overly complexified stuff here, simple is better than complex. \n\nRuby on `Rails 7` is used to develop this blogging platform. It is still\non development mode, any one who is willing to contribute is welcomed.\n\n## Installation\nYou can install **Deviser Club** in two main ways; Straight Forward \nInstallation and Docker Installation.\nI am still figuring out the docker part. So, I will make a straight\nforward installation guide for now.\n\n### Straight Forward Installation\nTo 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.\n\n[Install `RVM`](https://github.com/rvm/ubuntu_rvm), `ruby3.0.0` and run `bundle`...\n\n```bash\nrvm install \"ruby-3.0.0\"\n```\n\nIf some permission issues pop while installing `Ruby 3` with RVM, try below code:\n```bash\nrvmsudo rvm get stable --auto-dotfiles\nrvm fix-permissions system\nrvm group add rvm $USER\nrvm fix-permissions user\nrvmsudo rvm get stable --auto-dotfiles\nrvm install \"ruby-3.0.0\"\nrvm fix-permissions system; rvm fix-permissions user\n```\n\nNow you have to install  a dependency for OG Image generation Deviser Club.\n\n```bash\nsudo apt install ruby-rmagick\n```\n\nNow you call install `Rails 7.0.3` and other essential gems by using `bundle install`\n\n```bash\n$ bundle install\n```\n\n#### Development Essentials\nTo start the development, you need to create a `development` database.\n\n```bash\nrails db:create\n```\n\nThen, you need to migrate the database.\n\n\n```bash\nrails db:migrate\n```\n\nFor mailing in development, our Deviser Club uses `mailcatcher`, which\nwill automatically get \ninstall while doing `bundle install`\n\nStart the server\n    \n```bash\n./bin/dev\n```\n\n#### Production Essentials and Deployment\nFor production, you need to create a `production` database, manage some paths \nand you're good to go.\n\n##### Git Clone\nGo to `cd ~/` and then `git clone https://github.com/Bishwas-py/deviser-club.git`,\nand then cd inside the folder.\n```bash\ncd ~/deviser-club\n```\n\n##### Database\nCreate a postgresql (or any well functioning database you want) user and database\n\n```bash\nsudo -u postgres psql postgres\ncreate database deviser_club_database_name;\ncreate user deviser_club_database_username with encrypted password 'deviser_club_database_password';\ngrant all privileges on database deviser_club_database_name to deviser_club_database_username;\n```\n\nNow, copy the `database.yml.sample` to `database.yml`\n\n```bash\ncp config/database.yml.sample config/database.yml\n```\n\nAnd then, inside your `database.yml` edit the given credentials \nfor the database. You have to replace\ndatabase name, username and password with `deviser_club_database_name`,\n`deviser_club_database_username` and `deviser_club_database_password`\nrespectively.\n\n```bash\ndefault: \u0026default\n  adapter: sqlite3\n  pool: \u003c%= ENV.fetch(\"RAILS_MAX_THREADS\") { 5 } %\u003e\n  timeout: 5000\n...\nproduction:\n  adapter: postgresql\n  encoding: unicode\n  host: localhost\n  pool: 5\n  database: deviser_club_database_name\n  username: deviser_club_database_username\n  password: deviser_club_database_password\n```\n\n\n##### Run migration\nNow, you need to migrate the database explicitly for production.\n\n```bash\nRAILS_ENV=production bundle exec rails db:migrate\n```\n##### Email Setup\nDo `rails credentials:edit` for setting environment variable for email.\n\nFor that, type following commands\n```shell\nRAILS_ENV=production bundle exec EDITOR=vim rails credentials:edit\n# probably you might need sudo authority\n```\n\nNow, add the following data below of the file according to your choice.\n```yaml\nmail:\n     method: :smtp\n     from_email: 'Platform Name \u003cno-reply@platform.club\u003e' \n     host_name: platform.club\n     address: host.ip.address\n     domain: platform.club\n     port: 587\n     user_name: smtp_username\n     password: smtp_password\n\n# replace `platform` with your platform name\n```\n\n##### Check server\nAllow port `3000` by `ufw` or equivalent, and\ngo to `http://SERVER.PUBLIC.IP.ADDRESS:3000`, and it'll show your webapp,\nwhich is the sign of good installation.\n```shell\nRAILS_ENV=production bundle exec rails s -p 3000\n```\n##### Deployment\nTo deploy your app, you need to install `capistrano` and `capistrano-rails` must of the\ntime. If you want that you can do that too but for me, I like doing things manually.\n\n###### Make `assets`\n```shell\nRAILS_ENV=production bundle exec rails assets:precompile\n```\n\n###### Setup Nginx\nMake a file in `/etc/nginx/sites-enabled` called `deviser-club`.\n\n```bash\nserver {\n  listen 80;\n  listen [::]:80;\n \n  server_name example.com; # your site domain like: deviser.club\n  root /home/server_user/deviser-club/public;\n\n  passenger_enabled on;\n  passenger_app_env production;\n\n  location /cable {\n    passenger_app_group_name deviser-club_websocket;\n    passenger_force_max_concurrent_requests_per_process 0;\n  }\n\n  # Allow uploads up to 100MB in size\n  client_max_body_size 100m;\n\n  location ~ ^/(assets|packs) {\n    expires max;\n    gzip_static on;\n  }\n}\n```\nNow, restart nginx.\n```shell\nsudo service nginx restart\n```\n\nCheck, nginx status.\n```shell\nsudo service nginx status\n\n● nginx.service - A high performance web server and a reverse proxy server\n     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en\u003e\n     Active: active (running) since Sun 2022-08-07 19:09:01 UTC; 7h ago\n```\n\n### Hooray! You have successfully installed Deviser Club\nCongratulations! You have successfully installed Deviser Club. Now, you can go to your\ndomain url and start serving the world through Deviser Club.\n\n\n## Preview\nHere are some screenshots of deviser club\n[![open source medium alternative: deviser club](https://user-images.githubusercontent.com/42182303/184522909-5823b02f-9fd9-4949-bf94-43a10a101f3b.png)](https://imgur.com/gallery/gaWxaBT)\n\n\nThanks for reading!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbishwas-py%2Fdeviser-club","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbishwas-py%2Fdeviser-club","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbishwas-py%2Fdeviser-club/lists"}