Skip to content

OPORA/publicwhip-ternopil

Repository files navigation

README

Дана інструкція є коротким описом тільки як запустити проект, вона не є заміною офіційної документаї мови програмування Ruby та фреймворку RubyOnRails, та не має настанов з адміністрування та конфігурації веб серверу, чи серверу баз даних

Для заапуску проекта потрібно мати Linux server зі слідуючими необхідними пакетами та службами:

після того як маємо встановлений сервер, клонуємо репозиторій на локальний компютер який має встановлений Ruby

git clone [email protected]:OPORA/publicwhip-kyiv.git

Редагуємо файли тасків завантаження даних

lib/tasks/load_mp.rake

6 та 19 стрічка JSON.load(open("http://#{Settings.name_site}mp.oporaua.org/")) http://#{Settings.name_site}mp.oporaua.org/ - вказуємо свій працюючий uri з датасетом депутатів датасет депутатів повинен мати ідентичну структуру з ось таким JSON [https://kyivmp.oporaua.org/]

та lib/tasks/load_division.rake

4 стрічка JSON.load(open("http://#{Settings.name_site}voted.oporaua.org/votes_events")) вказуємор свій uri http://#{Settings.name_site}voted.oporaua.org/votes_events датасет повинен мати ідентичну структуру з ось таким JSON [https://kyivvoted.oporaua.org/votes_events/]

і 8 стрічка відповідно JSON.load(open("http://#{Settings.name_site}voted.oporaua.org/votes_events/#{date}.json"))

зміна #{date} є індитифікатором дати сесії формат uri може бути інший головне щоб можна було отримати данні датасет повинен мати ідентичну структуру з ось таким JSON [https://kyivvoted.oporaua.org/votes_events/2015-12-01.json]

Змінюємо налаштування пошти під свої потреби, зміні Settings.email, Settings.email_password можна вказати в файлі ./shared/config/settings.yml під час деплою

для цього правимо:

config/environments/production.rb

config.action_mailer.smtp_settings = {
      address: 'mail.oporaua.org',
      port: 2525,
      domain: 'oporaua.org',
      authentication: :plain,
      user_name: Settings.email,
      password: Settings.email_password,
      enable_starttls_auto: true
  }

та

config/initializers/devise.rb config.mailer_sender = '[email protected]'

Для deploy проекту використовуємо gem mina, в config/deploy.rb

і відповідно до наших параметрів правимо файл конфігурації

set :domain, 'ruby.oporaua.org'  # вказуєм домене імя чи IP адрес серверу
set :deploy_to, "/home/publicwhip-kyiv/" # де саме буде знаходитись проект
set :repository, "[email protected]:OPORA/publicwhip-kyiv.git" #Ваш gitрепозиторій
set :branch, 'policy' #Ветка
set :user, 'root'          # Username in the server to SSH to.
set :port, '1122'           # SSH port number.

УВАГА! Всі зміни відправляємо в свій git репозиторій!

після цього, якщо в нас вірно встановлено Ruby та Gem Bundler, виконуєм команду

bundle install

mina setup

пісдя того як виконали mina setup на сервері потрібно відредагувати файли конфігурації ./shared/config/database.yml, ./shared/config/secrets.yml та ./shared/config/settings.yml

  • ./shared/config/database.yml
default: &default
  adapter: postgresql
  encoding: unicode
  # For details on connection pooling, see rails configuration guide
  # http://guides.rubyonrails.org/configuring.html#database-pooling
  pool: 5

production:
  <<: *default
  database: #імя бази даних створеної на сервері
  host: localhost
  username: #імя користувача
  password: #пароль

  • ./shared/config/secrets.yml
production:
  secret_key_base: # виконуємо команду  rake secret в результаты отримуєм хеш який записуємо сюда

  • ./shared/config/settings.yml
  name_site: "kyiv" #Назва сайта
  name_rada: "Київської Міськради" #назва ради
  gtag: # код google аналытики FAQ: UA-70897601-12
  directory_name: 'publicwhip-kyiv' № директорія сайта
  email:
  email_password:

після редагування, ми можемо запустити команду деполою mina deploy

після успішоно деплою виконуємо завнтаження або оновлення:

  • депутатів mina rake[load_mp:all]

  • фотографій депутатів mina rake[load_mp::image]

  • голосувань mina rake[load_division:votes]

після завантаження нових данних потрібно виконати оновлення статичтичних даних командами:

  • mina rake[division_cashe:all]

  • mina rake[deputi_cashe:all]