Skip to content

Commit

Permalink
Add changes for b9413c8
Browse files Browse the repository at this point in the history
  • Loading branch information
actions-user committed Dec 4, 2024
1 parent 1961bc8 commit 49ec4af
Show file tree
Hide file tree
Showing 6 changed files with 288 additions and 4 deletions.
1 change: 1 addition & 0 deletions _sources/index.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ Welcome to Specify Developer documentation!
:caption: Misc:

misc/add_new_instance_to_specify_cloud
misc/remove_instance_from_specify_cloud
misc/documentation
misc/kuit_notes
misc/specify7_ecs_most-in-one
Expand Down
53 changes: 53 additions & 0 deletions _sources/misc/remove_specify_cloud_instance.md.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Removing a Specify Cloud Instance

Before proceeding with the removal of a Specify Cloud instance, it is crucial to **contact the institution** to ensure they are aware that they have either halted payment to the consortium or that they have switched to self-hosting. We must not destroy or remove any data without providing them a copy.

Membership staff should be involved before proceeding.

## Steps to Remove a Specify Cloud Instance

1. **Remove from Updown.io**
- Log in to the Specify [Updown.io](https://updown.io/) account.
- Locate the instance you wish to remove (e.g., `fishmuseum.specifycloud.org`).
- Select the instance and click on the option to remove or delete it from your monitoring list. If this is not done before the following steps, we will be notified as if a server went offline.

3. **Remove from `spcloudservers.json`**
- Access the appropriate Specify Cloud server via SSH.
- Navigate to the `/home/ubuntu/docker-compositions/specifycloud` directory (should be there automatically).
- Navigate to the directory: `/home/ubuntu/docker-compositions/specifycloud`.
- Open the `spcloudservers.json` file in `nano` (or `vim` if you are an expert command line user).
- Remove the entry corresponding to your Specify Cloud instance and save the changes.

4. **Run `make`**
- Execute the command:
```bash
make
```
- This will rebuild the necessary configuration files (`docker-compose.yml` and associated resources) without the removed instance as to not accidentally recreate it when building the containers again.

5. **Stop Docker Containers**
- Identify the names of the Docker containers for the main `specify7` app and the worker.
- Run the following commands to stop the containers:
```bash
docker stop <name_of_specify7_container>
docker stop <name_of_worker_container>
```
- Replace `<name_of_specify7_container>` and `<name_of_worker_container>` with the actual container names.

2. **Delete CNAME Record in DreamHost**
- Log in to our DreamHost account.
- Navigate to the **Websites** section and select **Manage Domains**.
- Find the domain associated with your Specify Cloud instance (by default, we use `specifycloud.org`, [link here](https://panel.dreamhost.com/index.cgi?tree=domain.dashboard#/site/specifycloud.org/dns).
- Click on **Edit** next to the domain and remove the CNAME record (`fishmuseum.specifycloud.org`) for the deployment.

6. **Backup the Database from RDS**
- Access your AWS RDS console.
- Locate the database associated with the Specify Cloud instance you are removing (usually the same as the subdomain, with `-` replaced with `_` if included).
- Create a manual snapshot or export the database to ensure you have a backup before deletion.

7. **Remove the Database from the Server**
- After backing up the database, proceed to remove it from the server.
- Ensure that you store the backup safely in the SCC Vault Google Drive under the corresponding member directory for future reference.

8. **Share the Database with the user**
- Message the point of contact for the insitutiton offering to share the database using any method convenient for them.
10 changes: 7 additions & 3 deletions _static/js/versions.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
const themeFlyoutDisplay = "hidden";
const themeVersionSelector = "True";
const themeLanguageSelector = "True";
const themeVersionSelector = true;
const themeLanguageSelector = true;

if (themeFlyoutDisplay === "attached") {
function renderLanguages(config) {
if (!config.projects.translations.length) {
return "";
}

// Insert the current language to the options on the selector
let languages = config.projects.translations.concat(config.projects.current);
languages = languages.sort((a, b) => a.language.name.localeCompare(b.language.name));

const languagesHTML = `
<dl>
<dt>Languages</dt>
${config.projects.translations
${languages
.map(
(translation) => `
<dd ${translation.slug == config.projects.current.slug ? 'class="rtd-current-item"' : ""}>
Expand Down
226 changes: 226 additions & 0 deletions misc/remove_specify_cloud_instance.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,226 @@


<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="../">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />

<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Removing a Specify Cloud Instance &mdash; Specify Developer Documentation documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=80d5e7a1" />
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=e59714d7" />


<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=5929fcd5"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
</head>

<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >



<a href="../index.html" class="icon icon-home">
Specify Developer Documentation
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">Amazon Web Services:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../aws/aws_automation.html">AWS Automation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../aws/aws_infrastructure_notes.html">AWS Infrastructure Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../aws/aws_specify_asset_server_setup.html">AWS Specify Asset Server Setup</a></li>
<li class="toctree-l1"><a class="reference internal" href="../aws/aws_specify_cloud_setup.html">Specify Cloud Setup</a></li>
<li class="toctree-l1"><a class="reference internal" href="../aws/client_migration_notes.html">Digital Ocean to AWS migration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../aws/ec2_rds_specify7_setup.html">Deploy Specify7 to an EC2 instance</a></li>
<li class="toctree-l1"><a class="reference internal" href="../aws/specify_cloud_graviton_setup.html">Specify Cloud Graviton Setup</a></li>
<li class="toctree-l1"><a class="reference internal" href="../aws/remote_db_connection.html">Setup remote database connection to local mysql workbench</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Asset Server:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../asset_server/asset_config_files.html">Specify 7 Docker Config Example</a></li>
<li class="toctree-l1"><a class="reference internal" href="../asset_server/asset_server_config.html">Asset Server Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../asset_server/asset_server_setup.html">EC2 Non-Dockerized Build</a></li>
<li class="toctree-l1"><a class="reference internal" href="../asset_server/hybrid_asset_server_setup.html">Hybrid Asset Server Setup</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Server Management:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../server_management/managed_servers.html">Updown Monitoring</a></li>
<li class="toctree-l1"><a class="reference internal" href="../server_management/managed_servers.html#managed-servers">Managed Servers</a></li>
<li class="toctree-l1"><a class="reference internal" href="../server_management/managed_servers.html#accessing-specify-7-deployments">Accessing Specify 7 Deployments</a></li>
<li class="toctree-l1"><a class="reference internal" href="../server_management/managed_servers.html#accessing-backups-on-aws-rds">Accessing Backups on AWS RDS</a></li>
<li class="toctree-l1"><a class="reference internal" href="../server_management/exoscale.html">Exoscale Hosted Instances</a></li>
<li class="toctree-l1"><a class="reference internal" href="../server_management/exoscale_backups.html">Backups on Exoscale</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Internal Processes:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../dev_process/specify_processes.html">Specify Development Process</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev_process/project_docs.html">Project (Github pages) documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev_process/dbgroups.html">Databases with Specific Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev_process/individualdbs.html">Individual Database Information</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev_process/dev_expectations.html">Developer Expectations</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Security:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../security/aws_security.html">AWS Security</a></li>
<li class="toctree-l1"><a class="reference internal" href="../security/fix_exposed_secret.html">Fix Exposed Secrets</a></li>
<li class="toctree-l1"><a class="reference internal" href="../security/monitoring.html">Security Monitoring</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Testing:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../testing/pull_requests.html">Pull Request Testing</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Misc:</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="add_new_instance_to_specify_cloud.html">Add new Specify instance to Specify Cloud</a></li>
<li class="toctree-l1"><a class="reference internal" href="documentation.html">Informatics Documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="kuit_notes.html">Working with central KU IT</a></li>
<li class="toctree-l1"><a class="reference internal" href="specify7_ecs_most-in-one.html">Create a Most-In-One Specify Docker image</a></li>
<li class="toctree-l1"><a class="reference internal" href="useful_bash_cmds.html">Useful bash commands</a></li>
<li class="toctree-l1"><a class="reference internal" href="vs_code_django_unit_test_debugging_notes.html">VS Code Django Unit Test Debugging</a></li>
<li class="toctree-l1"><a class="reference internal" href="branch_from_tag.html">Create a branch from a tagged release</a></li>
</ul>

</div>
</div>
</nav>

<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../index.html">Specify Developer Documentation</a>
</nav>

<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item active">Removing a Specify Cloud Instance</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/misc/remove_specify_cloud_instance.md.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">

<section id="removing-a-specify-cloud-instance">
<h1>Removing a Specify Cloud Instance<a class="headerlink" href="#removing-a-specify-cloud-instance" title="Link to this heading"></a></h1>
<p>Before proceeding with the removal of a Specify Cloud instance, it is crucial to <strong>contact the institution</strong> to ensure they are aware that they have either halted payment to the consortium or that they have switched to self-hosting. We must not destroy or remove any data without providing them a copy.</p>
<p>Membership staff should be involved before proceeding.</p>
<section id="steps-to-remove-a-specify-cloud-instance">
<h2>Steps to Remove a Specify Cloud Instance<a class="headerlink" href="#steps-to-remove-a-specify-cloud-instance" title="Link to this heading"></a></h2>
<ol class="arabic">
<li><p><strong>Remove from Updown.io</strong></p>
<ul class="simple">
<li><p>Log in to the Specify <a class="reference external" href="https://updown.io/">Updown.io</a> account.</p></li>
<li><p>Locate the instance you wish to remove (e.g., <code class="docutils literal notranslate"><span class="pre">fishmuseum.specifycloud.org</span></code>).</p></li>
<li><p>Select the instance and click on the option to remove or delete it from your monitoring list. If this is not done before the following steps, we will be notified as if a server went offline.</p></li>
</ul>
</li>
<li><p><strong>Remove from <code class="docutils literal notranslate"><span class="pre">spcloudservers.json</span></code></strong></p>
<ul class="simple">
<li><p>Access the appropriate Specify Cloud server via SSH.</p></li>
<li><p>Navigate to the <code class="docutils literal notranslate"><span class="pre">/home/ubuntu/docker-compositions/specifycloud</span></code> directory (should be there automatically).</p></li>
<li><p>Navigate to the directory: <code class="docutils literal notranslate"><span class="pre">/home/ubuntu/docker-compositions/specifycloud</span></code>.</p></li>
<li><p>Open the <code class="docutils literal notranslate"><span class="pre">spcloudservers.json</span></code> file in <code class="docutils literal notranslate"><span class="pre">nano</span></code> (or <code class="docutils literal notranslate"><span class="pre">vim</span></code> if you are an expert command line user).</p></li>
<li><p>Remove the entry corresponding to your Specify Cloud instance and save the changes.</p></li>
</ul>
</li>
<li><p><strong>Run <code class="docutils literal notranslate"><span class="pre">make</span></code></strong></p>
<ul>
<li><p>Execute the command:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>make
</pre></div>
</div>
</li>
<li><p>This will rebuild the necessary configuration files (<code class="docutils literal notranslate"><span class="pre">docker-compose.yml</span></code> and associated resources) without the removed instance as to not accidentally recreate it when building the containers again.</p></li>
</ul>
</li>
<li><p><strong>Stop Docker Containers</strong></p>
<ul>
<li><p>Identify the names of the Docker containers for the main <code class="docutils literal notranslate"><span class="pre">specify7</span></code> app and the worker.</p></li>
<li><p>Run the following commands to stop the containers:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>docker<span class="w"> </span>stop<span class="w"> </span>&lt;name_of_specify7_container&gt;
docker<span class="w"> </span>stop<span class="w"> </span>&lt;name_of_worker_container&gt;
</pre></div>
</div>
</li>
<li><p>Replace <code class="docutils literal notranslate"><span class="pre">&lt;name_of_specify7_container&gt;</span></code> and <code class="docutils literal notranslate"><span class="pre">&lt;name_of_worker_container&gt;</span></code> with the actual container names.</p></li>
</ul>
</li>
<li><p><strong>Delete CNAME Record in DreamHost</strong></p>
<ul class="simple">
<li><p>Log in to our DreamHost account.</p></li>
<li><p>Navigate to the <strong>Websites</strong> section and select <strong>Manage Domains</strong>.</p></li>
<li><p>Find the domain associated with your Specify Cloud instance (by default, we use <code class="docutils literal notranslate"><span class="pre">specifycloud.org</span></code>, <a class="reference external" href="https://panel.dreamhost.com/index.cgi?tree=domain.dashboard#/site/specifycloud.org/dns">link here</a>.</p></li>
<li><p>Click on <strong>Edit</strong> next to the domain and remove the CNAME record (<code class="docutils literal notranslate"><span class="pre">fishmuseum.specifycloud.org</span></code>) for the deployment.</p></li>
</ul>
</li>
<li><p><strong>Backup the Database from RDS</strong></p>
<ul class="simple">
<li><p>Access your AWS RDS console.</p></li>
<li><p>Locate the database associated with the Specify Cloud instance you are removing (usually the same as the subdomain, with <code class="docutils literal notranslate"><span class="pre">-</span></code> replaced with <code class="docutils literal notranslate"><span class="pre">_</span></code> if included).</p></li>
<li><p>Create a manual snapshot or export the database to ensure you have a backup before deletion.</p></li>
</ul>
</li>
<li><p><strong>Remove the Database from the Server</strong></p>
<ul class="simple">
<li><p>After backing up the database, proceed to remove it from the server.</p></li>
<li><p>Ensure that you store the backup safely in the SCC Vault Google Drive under the corresponding member directory for future reference.</p></li>
</ul>
</li>
<li><p><strong>Share the Database with the user</strong></p>
<ul class="simple">
<li><p>Message the point of contact for the insitutiton offering to share the database using any method convenient for them.</p></li>
</ul>
</li>
</ol>
</section>
</section>


</div>
</div>
<footer>

<hr/>

<div role="contentinfo">
<p>&#169; Copyright 2024, Specify Team.</p>
</div>

Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.


</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>

</body>
</html>
Binary file modified objects.inv
Binary file not shown.
2 changes: 1 addition & 1 deletion searchindex.js

Large diffs are not rendered by default.

0 comments on commit 49ec4af

Please sign in to comment.