<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ohcnwiki.tellmey.fyi/index.php?action=history&amp;feed=atom&amp;title=Deployment%2FProviders%2FDeploying_Care_on_DigitalOcean</id>
	<title>Deployment/Providers/Deploying Care on DigitalOcean - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ohcnwiki.tellmey.fyi/index.php?action=history&amp;feed=atom&amp;title=Deployment%2FProviders%2FDeploying_Care_on_DigitalOcean"/>
	<link rel="alternate" type="text/html" href="https://ohcnwiki.tellmey.fyi/index.php?title=Deployment/Providers/Deploying_Care_on_DigitalOcean&amp;action=history"/>
	<updated>2026-07-06T05:22:11Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.4</generator>
	<entry>
		<id>https://ohcnwiki.tellmey.fyi/index.php?title=Deployment/Providers/Deploying_Care_on_DigitalOcean&amp;diff=387&amp;oldid=prev</id>
		<title>Admin: Add Navbox deployment template before Related (via update-page on MediaWiki MCP Server)</title>
		<link rel="alternate" type="text/html" href="https://ohcnwiki.tellmey.fyi/index.php?title=Deployment/Providers/Deploying_Care_on_DigitalOcean&amp;diff=387&amp;oldid=prev"/>
		<updated>2026-07-06T04:01:17Z</updated>

		<summary type="html">&lt;p&gt;Add Navbox deployment template before Related (via update-page on MediaWiki MCP Server)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:31, 6 July 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 305:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 305:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For troubleshooting, feel free to join our Community on Slack at [&amp;lt;nowiki/&amp;gt;https://slack.ohc.network slack.ohc.network]. You may also refer to the official [&amp;lt;nowiki/&amp;gt;https://www.digitalocean.com/docs DigitalOcean Documentation] for any questions about DigitalOcean.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For troubleshooting, feel free to join our Community on Slack at [&amp;lt;nowiki/&amp;gt;https://slack.ohc.network slack.ohc.network]. You may also refer to the official [&amp;lt;nowiki/&amp;gt;https://www.digitalocean.com/docs DigitalOcean Documentation] for any questions about DigitalOcean.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Navbox deployment}}&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Related}}&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Related}}&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://ohcnwiki.tellmey.fyi/index.php?title=Deployment/Providers/Deploying_Care_on_DigitalOcean&amp;diff=209&amp;oldid=prev</id>
		<title>Admin: OHC identity seed</title>
		<link rel="alternate" type="text/html" href="https://ohcnwiki.tellmey.fyi/index.php?title=Deployment/Providers/Deploying_Care_on_DigitalOcean&amp;diff=209&amp;oldid=prev"/>
		<updated>2026-07-04T23:08:06Z</updated>

		<summary type="html">&lt;p&gt;OHC identity seed&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Doc header&lt;br /&gt;
|type=guide&lt;br /&gt;
|domain=deployment&lt;br /&gt;
|title=Deploying Care on DigitalOcean&lt;br /&gt;
|order=4&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
= Deploying Care on DigitalOcean =&lt;br /&gt;
&lt;br /&gt;
In this guide, we&amp;#039;ll walk you through deploying &amp;#039;&amp;#039;&amp;#039;Care&amp;#039;&amp;#039;&amp;#039; on &amp;#039;&amp;#039;&amp;#039;DigitalOcean&amp;#039;&amp;#039;&amp;#039;. We&amp;#039;ll keep things simple so you can follow along to get your instance up and running. Expect the process to take about &amp;#039;&amp;#039;&amp;#039;an hour&amp;#039;&amp;#039;&amp;#039;, depending on your familiarity with the tools.&lt;br /&gt;
&lt;br /&gt;
For an overview of all supported cloud providers and their infrastructure requirements, see the [[Index|Cloud providers overview]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* A DigitalOcean account ([&amp;lt;nowiki/&amp;gt;https://www.digitalocean.com Sign up here]).&lt;br /&gt;
* A fork of the Care backend and frontend repositories.&lt;br /&gt;
* A registered domain name (optional but recommended).&lt;br /&gt;
* Basic familiarity with DigitalOcean&amp;#039;s App Platform and Spaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== What You&amp;#039;ll Be Doing ==&lt;br /&gt;
&lt;br /&gt;
* Set up a &amp;#039;&amp;#039;&amp;#039;PostgreSQL database&amp;#039;&amp;#039;&amp;#039; for secure data storage.&lt;br /&gt;
* Configure &amp;#039;&amp;#039;&amp;#039;DigitalOcean Spaces&amp;#039;&amp;#039;&amp;#039; for handling files and media.&lt;br /&gt;
* Deploy the &amp;#039;&amp;#039;&amp;#039;Care backend&amp;#039;&amp;#039;&amp;#039; with Redis and Celery for task management.&lt;br /&gt;
* Set up the &amp;#039;&amp;#039;&amp;#039;Care frontend&amp;#039;&amp;#039;&amp;#039; for user access.&lt;br /&gt;
* Secure the setup with custom domains, API keys, and SSL.&lt;br /&gt;
* Setup a CI/CD Pipeline for Continuous Deployment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Step 1: Create the Database ==&lt;br /&gt;
&lt;br /&gt;
=== 1.1 Navigate to Databases ===&lt;br /&gt;
&lt;br /&gt;
* Log in to DigitalOcean and go to the &amp;#039;&amp;#039;&amp;#039;Databases&amp;#039;&amp;#039;&amp;#039; section.&lt;br /&gt;
&lt;br /&gt;
=== 1.2 Create a PostgreSQL Database ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Click &amp;#039;&amp;#039;&amp;#039;Create Database&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Choose the following:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Region&amp;#039;&amp;#039;&amp;#039;: Select the nearest data center.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Engine&amp;#039;&amp;#039;&amp;#039;: PostgreSQL (Version 16).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Resources&amp;#039;&amp;#039;&amp;#039;: Select a plan based on your requirements.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;![[Do db 1|Navigate to Databases]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039;: Give your database a unique name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Tags&amp;#039;&amp;#039;&amp;#039;: Add tags for organization.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;![[Do db 2|Navigate to Databases]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Do db 3|Create Database]]&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1.3 Save Connection Details ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Once the database is created, note the connection URL for later use.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Do db 4|Connection String]]&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Step 2: Set Up Object Storage (Spaces) ==&lt;br /&gt;
&lt;br /&gt;
=== 2.1 Navigate to Spaces ===&lt;br /&gt;
&lt;br /&gt;
* Go to the &amp;#039;&amp;#039;&amp;#039;Spaces&amp;#039;&amp;#039;&amp;#039; section in DigitalOcean.&lt;br /&gt;
&lt;br /&gt;
=== 2.2 Create a New Space ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Click &amp;#039;&amp;#039;&amp;#039;Create a Space&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Do spaces 1|Create Space]]&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Choose:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Region&amp;#039;&amp;#039;&amp;#039;: Select the same region as your database.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Enable CDN&amp;#039;&amp;#039;&amp;#039;: For faster file delivery.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Bucket Name&amp;#039;&amp;#039;&amp;#039;: Enter a unique name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039;: Select the default project.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Create&amp;#039;&amp;#039;&amp;#039;: Click to create the space.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;![[Do spaces 3|Create Space]]&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2.3 Generate API Keys ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Go to the &amp;#039;&amp;#039;&amp;#039;API&amp;#039;&amp;#039;&amp;#039; tab and click &amp;#039;&amp;#039;&amp;#039;Spaces Keys&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Create a new key pair and save the &amp;#039;&amp;#039;&amp;#039;Key&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Secret&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Do spaces 2|Generate Keys]]&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Step 3: Deploy the Care Backend (BE) ==&lt;br /&gt;
&lt;br /&gt;
=== Step 3.1: Deploy Redis ===&lt;br /&gt;
&lt;br /&gt;
==== 3.1.1 Set Up Redis ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Go to the App Platform and click &amp;#039;&amp;#039;&amp;#039;Create App&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Do app 1|Select App Platform]]&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Choose &amp;#039;&amp;#039;&amp;#039;Docker Hub&amp;#039;&amp;#039;&amp;#039; as the source and use:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Repository&amp;#039;&amp;#039;&amp;#039;: &amp;lt;code&amp;gt;redis/redis-stack-server&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Tag&amp;#039;&amp;#039;&amp;#039;: &amp;lt;code&amp;gt;6.2.6-v10&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;#039;&amp;#039;&amp;#039;Port&amp;#039;&amp;#039;&amp;#039;: Expose &amp;lt;code&amp;gt;6379&amp;lt;/code&amp;gt; as an internal port.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Name the component &amp;lt;code&amp;gt;redis&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Redis 1|Select App Platform]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Redis 2|Edit these fields]]&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3.1.2 Name and Deploy ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Name the App &amp;lt;code&amp;gt;care-backend&amp;lt;/code&amp;gt; and deploy it.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Redis 3|Name and Deploy]]&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Step 3.2: Deploy the Care Backend ===&lt;br /&gt;
&lt;br /&gt;
==== 3.2.1 Fork and Clone the Repository ====&lt;br /&gt;
&lt;br /&gt;
* Fork the [&amp;lt;nowiki/&amp;gt;https://github.com/ohcnetwork/care Care Backend Repository].&lt;br /&gt;
* Use the &amp;lt;code&amp;gt;production&amp;lt;/code&amp;gt; branch for deployment.&lt;br /&gt;
&lt;br /&gt;
==== 3.2.2 Set Up the App ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Click &amp;#039;&amp;#039;&amp;#039;Create App&amp;#039;&amp;#039;&amp;#039; and choose &amp;#039;&amp;#039;&amp;#039;From Source Code&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Select your forked repo and branch.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Set the build and run commands:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Care django 1|Create Resource from Source Code]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Care django 2|Select GitHub Repository]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;&amp;#039;&amp;#039;&amp;#039;Build Command:&amp;#039;&amp;#039;&amp;#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;python install_plugins.py &amp;amp;&amp;amp; python manage.py collectstatic --noinput &amp;amp;&amp;amp; python manage.py compilemessages&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;&amp;#039;&amp;#039;&amp;#039;Run Command:&amp;#039;&amp;#039;&amp;#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;gunicorn config.wsgi:application --workers 2 --bind :9000&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Care django 3|Select GitHub Repository]]&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3.2.3 Environment Variables ====&lt;br /&gt;
&lt;br /&gt;
Add the following as global environment variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;DJANGO_SETTINGS_MODULE=config.settings.production&lt;br /&gt;
DATABASE_URL=&amp;lt;db-url&amp;gt; # Use the connection URL from Step 1.&lt;br /&gt;
REDIS_URL=redis://redis:6379&lt;br /&gt;
CORS_ALLOWED_ORIGINS=[&amp;quot;https://care.example.com&amp;quot;,&amp;quot;http://localhost:4000&amp;quot;,&amp;quot;http://127.0.0.1:4000&amp;quot;]&lt;br /&gt;
CELERY_BROKER_URL=redis://redis:6379&lt;br /&gt;
REDIS_URL=redis://redis:6379&lt;br /&gt;
BUCKET_PROVIDER=DIGITAL_OCEAN&lt;br /&gt;
BUCKET_REGION=nyc3 # Use the region of your Spaces.&lt;br /&gt;
BUCKET_KEY= # Use the Spaces key.&lt;br /&gt;
BUCKET_SECRET= # Use the Spaces secret.&lt;br /&gt;
BUCKET_HAS_FINE_ACL=true&lt;br /&gt;
FILE_UPLOAD_BUCKET=example-space-ohc # Use the name of your Space.&lt;br /&gt;
FILE_UPLOAD_BUCKET_ENDPOINT=https://example-space-ohc.nyc3.digitaloceanspaces.com&lt;br /&gt;
FACILITY_S3_BUCKET=example-space-ohc # Use the name of your Space.&lt;br /&gt;
FACILITY_S3_BUCKET_ENDPOINT=https://example-space-ohc.nyc3.digitaloceanspaces.com&lt;br /&gt;
JWKS_BASE64= # Add your JWKS key. (Refer to the next section to create one.)&lt;br /&gt;
DISABLE_COLLECTSTATIC=1&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===== Generate JWKS Key =====&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;JWKS_BASE64&amp;lt;/code&amp;gt; value is generated here. Use the generator below to create a key, then paste the output into the &amp;lt;code&amp;gt;JWKS_BASE64&amp;lt;/code&amp;gt; environment variable above.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;JwksGenerator /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3.2.4 Expose Ports ====&lt;br /&gt;
&lt;br /&gt;
* Expose port &amp;lt;code&amp;gt;9000&amp;lt;/code&amp;gt; for public HTTP access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Step 3.3: Add a Domain for the Backend ===&lt;br /&gt;
&lt;br /&gt;
==== 3.3.1 Configure Domain ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Go to the app settings and add your domain (e.g., &amp;lt;code&amp;gt;care-api.example.com&amp;lt;/code&amp;gt;).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Update your DNS provider with the CNAME record.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Domain|Add Domain]]&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Step 3.4: Set Up Celery Worker and Beat ===&lt;br /&gt;
&lt;br /&gt;
==== 3.4.1 Celery Worker ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Create a new component in the app.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Use the following &amp;#039;&amp;#039;&amp;#039;Run Command&amp;#039;&amp;#039;&amp;#039;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;celery --app=config.celery_app worker --max-tasks-per-child=2 --concurrency=2 --loglevel=DEBUG --logfile stdout&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Worker 1|Celery Worker]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Worker 2|Celery Worker]]&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 3.4.2 Celery Beat ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Create another component with the following &amp;#039;&amp;#039;&amp;#039;Run Command&amp;#039;&amp;#039;&amp;#039;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;python manage.py migrate&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Job 1|Celery Job]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Job 2|Celery Job]]&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Step 4: Deploy the Care Frontend (FE) ==&lt;br /&gt;
&lt;br /&gt;
=== 4.1 Fork the Frontend Repository ===&lt;br /&gt;
&lt;br /&gt;
* Fork the [&amp;lt;nowiki/&amp;gt;https://github.com/ohcnetwork/care_fe Care Frontend Repository].&lt;br /&gt;
* Use the &amp;lt;code&amp;gt;production&amp;lt;/code&amp;gt; branch.&lt;br /&gt;
&lt;br /&gt;
=== 4.2 Set Up the App ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Click &amp;#039;&amp;#039;&amp;#039;Create App&amp;#039;&amp;#039;&amp;#039; and configure:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;&amp;#039;&amp;#039;&amp;#039;Type&amp;#039;&amp;#039;&amp;#039;: Static Site.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;&amp;#039;&amp;#039;&amp;#039;Build Command:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;npm run build&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;&amp;#039;&amp;#039;&amp;#039;Environment Variable:&amp;#039;&amp;#039;&amp;#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;REACT_CARE_API_URL=https://care-api.example.com&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;&amp;#039;&amp;#039;&amp;#039;Output Directory:&amp;#039;&amp;#039;&amp;#039; Auto.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4.3 Add Domain ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Go to the app settings and add the frontend domain (e.g., &amp;lt;code&amp;gt;care.example.com&amp;lt;/code&amp;gt;).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Care fe 1|Frontend Setup]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Care fe 2|Celery Job]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Care fe 3|Celery Job]]&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Step 5: Secure Database Access ==&lt;br /&gt;
&lt;br /&gt;
=== 5.1 Restrict Access ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Navigate to the Database settings.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Add the Care backend app as a trusted source.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Secure db|Secure Database]]&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Step 6: Configure CORS for Spaces ==&lt;br /&gt;
&lt;br /&gt;
=== 6.1 Go to Bucket Settings ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Open your bucket in Spaces.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Add the following CORS configuration:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;[&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;AllowedHeaders&amp;quot;: [&amp;quot;*&amp;quot;],&lt;br /&gt;
    &amp;quot;AllowedMethods&amp;quot;: [&amp;quot;GET&amp;quot;, &amp;quot;POST&amp;quot;, &amp;quot;PUT&amp;quot;, &amp;quot;DELETE&amp;quot;],&lt;br /&gt;
    &amp;quot;AllowedOrigins&amp;quot;: [&amp;quot;https://example.com&amp;quot;],&lt;br /&gt;
    &amp;quot;ExposeHeaders&amp;quot;: []&lt;br /&gt;
  }&lt;br /&gt;
]&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Cors|CORS]]&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Final Steps ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;&amp;#039;&amp;#039;&amp;#039;Verify Deployment:&amp;#039;&amp;#039;&amp;#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Test the backend and frontend by accessing the respective domains.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ensure all components (Redis, Celery Worker, Beat) are running.&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;&amp;#039;&amp;#039;&amp;#039;Optimize Security:&amp;#039;&amp;#039;&amp;#039;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Use SSL certificates (e.g., Let&amp;#039;s Encrypt) to enable HTTPS.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Configure firewall rules to restrict access.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;![[Care infra do|Care Infra]]&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
You&amp;#039;ve successfully deployed the Care application on DigitalOcean! With the database, object storage, backend, and frontend configured, your application is ready for use. 🚀&lt;br /&gt;
&lt;br /&gt;
For troubleshooting, feel free to join our Community on Slack at [&amp;lt;nowiki/&amp;gt;https://slack.ohc.network slack.ohc.network]. You may also refer to the official [&amp;lt;nowiki/&amp;gt;https://www.digitalocean.com/docs DigitalOcean Documentation] for any questions about DigitalOcean.&lt;br /&gt;
&lt;br /&gt;
{{Related}}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>