mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-24 15:49:39 +02:00
Add zero-config self hosting on Render (#612)
* v1 of backend implementation for self hosting * Add docs * Add upgrades controller * Add global helpers for self hosting mode * Add self host settings controller * Conditionally show self hosting settings * Environment and config updates * Complete upgrade prompting flow * Update config for forked repo * Move configuration of github provider within class * Add upgrades cron * Update deploy button * Update guides * Fix render deployer * Typo * Enable auto upgrades * Fix cron * Make upgrade modes more clear and consistent * Trigger new available version * Fix logic for displaying upgrade prompts * Finish implementation * Fix regression * Trigger new version * Add i18n translations * trigger new version * reduce caching time for testing * Decrease cache for testing * trigger upgrade * trigger upgrade * Only trigger deploy once * trigger upgrade * If target is commit, always upgrade if any upgrade is available * trigger upgrade * trigger upgrade * Test release * Change back to maybe repo for defaults * Fix lint errors * Clearer naming * Fix relative link * Add abs path * Relative link * Update docs
This commit is contained in:
parent
2bbf120e2f
commit
5aca2ff9b6
53 changed files with 1356 additions and 111 deletions
41
app/models/upgrader/deployer/render.rb
Normal file
41
app/models/upgrader/deployer/render.rb
Normal file
|
@ -0,0 +1,41 @@
|
|||
class Upgrader::Deployer::Render
|
||||
def deploy(upgrade)
|
||||
if Setting.render_deploy_hook.blank?
|
||||
return {
|
||||
success: false,
|
||||
message: I18n.t("upgrader.deployer.render.error_message_not_set"),
|
||||
troubleshooting_url: "/settings/self_hosting/edit"
|
||||
}
|
||||
end
|
||||
|
||||
Rails.logger.info I18n.t("upgrader.deployer.render.deploy_log_info", type: upgrade.type, commit_sha: upgrade.commit_sha)
|
||||
|
||||
begin
|
||||
uri = URI.parse(Setting.render_deploy_hook)
|
||||
uri.query = [ uri.query, "ref=#{upgrade.commit_sha}" ].compact.join("&")
|
||||
response = Faraday.post(uri.to_s)
|
||||
|
||||
unless response.success?
|
||||
Rails.logger.error I18n.t("upgrader.deployer.render.deploy_log_error", type: upgrade.type, commit_sha: upgrade.commit_sha, error_message: response.body)
|
||||
return default_error_response
|
||||
end
|
||||
|
||||
{
|
||||
success: true,
|
||||
message: I18n.t("upgrader.deployer.render.success_message", commit_sha: upgrade.commit_sha.slice(0, 7))
|
||||
}
|
||||
rescue => e
|
||||
Rails.logger.error I18n.t("upgrader.deployer.render.deploy_log_error", type: upgrade.type, commit_sha: upgrade.commit_sha, error_message: e.message)
|
||||
default_error_response
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def default_error_response
|
||||
{
|
||||
success: false,
|
||||
message: I18n.t("upgrader.deployer.render.error_message_failed_deploy"),
|
||||
troubleshooting_url: I18n.t("upgrader.deployer.render.troubleshooting_url")
|
||||
}
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue