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": {