From d1aba87e373526ca1f4bbf93e0376e9395ce400c Mon Sep 17 00:00:00 2001 From: Jingtao Wang Date: Wed, 23 Aug 2023 19:22:07 -0700 Subject: [PATCH] Updated with latest changes --- deploy_couchdb_to_flyio_v2_with_swap.ipynb | 86 +++++++++++++++++++++- 1 file changed, 85 insertions(+), 1 deletion(-) diff --git a/deploy_couchdb_to_flyio_v2_with_swap.ipynb b/deploy_couchdb_to_flyio_v2_with_swap.ipynb index a16809a..dd7e0d0 100644 --- a/deploy_couchdb_to_flyio_v2_with_swap.ipynb +++ b/deploy_couchdb_to_flyio_v2_with_swap.ipynb @@ -15,7 +15,8 @@ "source": [ "History:\n", "- 18, May, 2023: Initial.\n", - "- 19, Jun., 2023: Patched for enabling swap." + "- 19, Jun., 2023: Patched for enabling swap.\n", + "- 22, Aug., 2023: Generating Setup-URI implemented." ], "metadata": { "id": "HiRV7G8Gk1Rs" @@ -190,6 +191,8 @@ "cell_type": "code", "source": [ "# Finish setting up the CouchDB\n", + "# Please repeat until the request is completed without error messages\n", + "# i.e., You have to redo this block while \"curl: (35) OpenSSL SSL_connect: Connection reset by peer in connection to xxxx\" is showing.\n", "!curl -X POST \"${couchHost}/_cluster_setup\" -H \"Content-Type: application/json\" -d \"{\\\"action\\\":\\\"enable_single_node\\\",\\\"username\\\":\\\"${couchUser}\\\",\\\"password\\\":\\\"${couchPwd}\\\",\\\"bind_address\\\":\\\"0.0.0.0\\\",\\\"port\\\":5984,\\\"singlenode\\\":true}\" --user \"${couchUser}:${couchPwd}\"" ], "metadata": { @@ -201,6 +204,7 @@ { "cell_type": "code", "source": [ + "# Please repeat until all lines are completed without error messages\n", "!curl -X PUT \"${couchHost}/_node/nonode@nohost/_config/chttpd/require_valid_user\" -H \"Content-Type: application/json\" -d '\"true\"' --user \"${couchUser}:${couchPwd}\"\n", "!curl -X PUT \"${couchHost}/_node/nonode@nohost/_config/chttpd_auth/require_valid_user\" -H \"Content-Type: application/json\" -d '\"true\"' --user \"${couchUser}:${couchPwd}\"\n", "!curl -X PUT \"${couchHost}/_node/nonode@nohost/_config/httpd/WWW-Authenticate\" -H \"Content-Type: application/json\" -d '\"Basic realm=\\\"couchdb\\\"\"' --user \"${couchUser}:${couchPwd}\"\n", @@ -216,6 +220,86 @@ }, "execution_count": null, "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "Now, our CouchDB has been surely installed and configured. Cheers!\n", + "\n", + "In the steps that follow, create a setup-URI.\n", + "\n", + "This URI could be imported directly into Self-hosted LiveSync, to configure the use of the CouchDB which we configured now." + ], + "metadata": { + "id": "YfSOomsoXbGS" + } + }, + { + "cell_type": "code", + "source": [ + "# Database config\n", + "import random, string\n", + "\n", + "def randomname(n):\n", + " return ''.join(random.choices(string.ascii_letters + string.digits, k=n))\n", + "\n", + "# The database name\n", + "os.environ['database']=\"obsidiannote\"\n", + "# The passphrase to E2EE\n", + "os.environ['passphrase']=randomname(20)\n", + "\n", + "print(\"Your database:\"+os.environ['database'])\n", + "print(\"Your passphrase:\"+os.environ['passphrase'])" + ], + "metadata": { + "id": "416YncOqXdNn" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Install deno for make setup uri\n", + "!curl -fsSL https://deno.land/x/install/install.sh | sh" + ], + "metadata": { + "id": "C4d7C0HAXgsr" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Fetch module for encrypting a Setup URI\n", + "!curl -o encrypt.ts https://gist.githubusercontent.com/vrtmrz/f9d1d95ee2ca3afa1a924a2c6759b854/raw/d7a070d864a6f61403d8dc74208238d5741aeb5a/encrypt.ts" + ], + "metadata": { + "id": "hQL_Dx-PXise" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Make buttons!\n", + "from IPython.display import HTML\n", + "result = subprocess.run([\"/root/.deno/bin/deno\",\"run\",\"-A\",\"encrypt.ts\"], capture_output=True, text=True)\n", + "text=\"\"\n", + "if result.returncode==0:\n", + " text = result.stdout.strip()\n", + " result = HTML(f\"
Importing passphrase is `welcome`.
If you want to synchronise in live mode, please apply a preset after setup.)\")\n", + "else:\n", + " result = \"Failed to encrypt the setup URI\"\n", + "result" + ], + "metadata": { + "id": "o0gX_thFXlIZ" + }, + "execution_count": null, + "outputs": [] } ], "metadata": {