···1818// RECORDTYPE: ActorProfile
1919type ActorProfile struct {
2020 LexiconTypeID string `json:"$type,const=sh.tangled.actor.profile" cborgen:"$type,const=sh.tangled.actor.profile"`
2121+ // avatar: Small image to be displayed next to posts from account. AKA, 'profile picture'
2222+ Avatar *util.LexBlob `json:"avatar,omitempty" cborgen:"avatar,omitempty"`
2123 // bluesky: Include link to this account on Bluesky.
2224 Bluesky bool `json:"bluesky" cborgen:"bluesky"`
2325 // description: Free-form profile description text.
···3030 <div class="mx-6">
3131 These services may not be fully accessible until upgraded.
3232 <a class="underline text-red-800 dark:text-red-200"
3333- href="https://docs.tangled.org/migrating-knots-spindles.html#migrating-knots-spindles">
3333+ href="https://docs.tangled.org/migrating-knots-and-spindles.html">
3434 Click to read the upgrade guide</a>.
3535 </div>
3636 </details>
···2121 <div class="col-span-1 md:col-span-2">
2222 <h2 class="text-sm pb-2 uppercase font-bold">SSH Keys</h2>
2323 <p class="text-gray-500 dark:text-gray-400">
2424- SSH public keys added here will be broadcasted to knots that you are a member of,
2424+ SSH public keys added here will be broadcasted to knots that you are a member of,
2525 allowing you to push to repositories there.
2626 </p>
2727 </div>
···6363 hx-swap="none"
6464 class="flex flex-col gap-2"
6565>
6666- <p class="uppercase p-0">ADD SSH KEY</p>
6666+ <label for="key-name" class="uppercase p-0">
6767+ add ssh key
6868+ </label>
6769 <p class="text-sm text-gray-500 dark:text-gray-400">SSH keys allow you to push to repositories in knots you're a member of.</p>
6870 <input
6971 type="text"
+43-60
appview/pages/templates/user/signup.html
···11-{{ define "user/signup" }}
22- <!doctype html>
33- <html lang="en" class="dark:bg-gray-900">
44- <head>
55- <meta charset="UTF-8" />
66- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
77- <meta property="og:title" content="signup ยท tangled" />
88- <meta property="og:url" content="https://tangled.org/signup" />
99- <meta property="og:description" content="sign up for tangled" />
1010- <script src="/static/htmx.min.js"></script>
1111- <link rel="manifest" href="/pwa-manifest.json" />
1212- <link rel="stylesheet" href="/static/tw.css?{{ cssContentHash }}" type="text/css" />
1313- <title>sign up · tangled</title>
11+{{ define "title" }} signup {{ end }}
1421515- <script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
1616- </head>
1717- <body class="flex items-center justify-center min-h-screen">
1818- <main class="max-w-md px-6 -mt-4">
1919- <h1 class="flex place-content-center text-2xl font-semibold italic dark:text-white" >
2020- {{ template "fragments/logotype" }}
2121- </h1>
2222- <h2 class="text-center text-xl italic dark:text-white">tightly-knit social coding.</h2>
2323- <form
2424- class="mt-4 max-w-sm mx-auto"
2525- hx-post="/signup"
2626- hx-swap="none"
2727- hx-disabled-elt="#signup-button"
2828- >
2929- <div class="flex flex-col mt-2">
3030- <label for="email">email</label>
3131- <input
3232- type="email"
3333- id="email"
3434- name="email"
3535- tabindex="4"
3636- required
3737- placeholder="jason@bourne.co"
3838- />
3939- </div>
4040- <span class="text-sm text-gray-500 mt-1">
4141- You will receive an email with an invite code. Enter your
4242- invite code, desired username, and password in the next
4343- page to complete your registration.
4444- </span>
4545- <div class="w-full mt-4 text-center">
4646- <div class="cf-turnstile" data-sitekey="{{ .CloudflareSiteKey }}" data-size="flexible"></div>
4747- </div>
4848- <button class="btn text-base w-full my-2 mt-6" type="submit" id="signup-button" tabindex="7" >
4949- <span>join now</span>
5050- </button>
5151- <p class="text-sm text-gray-500">
5252- Already have an AT Protocol account? <a href="/login" class="underline">Login to Tangled</a>.
5353- </p>
33+{{ define "extrameta" }}
44+ <script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
55+{{ end }}
66+77+{{ define "content" }}
88+ <form
99+ class="mt-4 max-w-sm mx-auto group"
1010+ hx-post="/signup"
1111+ hx-swap="none"
1212+ hx-disabled-elt="#signup-button"
1313+ >
1414+ <div class="flex flex-col mt-2">
1515+ <label for="email">email</label>
1616+ <input
1717+ type="email"
1818+ id="email"
1919+ name="email"
2020+ tabindex="4"
2121+ required
2222+ placeholder="jason@bourne.co"
2323+ />
2424+ </div>
2525+ <span class="text-sm text-gray-500 mt-1">
2626+ You will receive an email with an invite code. Enter your
2727+ invite code, desired username, and password in the next
2828+ page to complete your registration.
2929+ </span>
3030+ <div class="w-full mt-4 text-center">
3131+ <div class="cf-turnstile" data-sitekey="{{ .CloudflareSiteKey }}" data-size="flexible"></div>
3232+ </div>
3333+ <button class="btn text-base w-full my-2 mt-6" type="submit" id="signup-button" tabindex="7" >
3434+ {{ i "loader-circle" "size-4 animate-spin hidden group-[.htmx-request]:inline" }}
3535+ <span class="inline group-[.htmx-request]:hidden">join now</span>
3636+ </button>
3737+ <p class="text-sm text-gray-500">
3838+ Already have an AT Protocol account? <a href="/login" class="underline">Login to Tangled</a>.
3939+ </p>
54405555- <p id="signup-msg" class="error w-full"></p>
5656- <p class="text-sm text-gray-500 pt-4">
5757- By signing up, you agree to our <a href="/terms" class="underline">Terms of Service</a> and <a href="/privacy" class="underline">Privacy Policy</a>.
5858- </p>
5959- </form>
6060- </main>
6161- </body>
6262- </html>
4141+ <p id="signup-msg" class="error w-full"></p>
4242+ <p class="text-sm text-gray-500 pt-4">
4343+ By signing up, you agree to our <a href="/terms" class="underline">Terms of Service</a> and <a href="/privacy" class="underline">Privacy Policy</a>.
4444+ </p>
4545+ </form>
6346{{ end }}
···375375KNOT_SERVER_LISTEN_ADDR=127.0.0.1:5555
376376```
377377378378-If you run a Linux distribution that uses systemd, you can use the provided
379379-service file to run the server. Copy
380380-[`knotserver.service`](/systemd/knotserver.service)
378378+If you run a Linux distribution that uses systemd, you can
379379+use the provided service file to run the server. Copy
380380+[`knotserver.service`](https://tangled.org/tangled.org/core/blob/master/systemd/knotserver.service)
381381to `/etc/systemd/system/`. Then, run:
382382383383```
···501501502502Note that you should add a newline at the end if setting a non-empty message
503503since the knot won't do this for you.
504504+505505+## Troubleshooting
506506+507507+If you run your own knot, you may run into some of these
508508+common issues. You can always join the
509509+[IRC](https://web.libera.chat/#tangled) or
510510+[Discord](https://chat.tangled.org/) if this section does
511511+not help.
512512+513513+### Unable to push
514514+515515+If you are unable to push to your knot or repository:
516516+517517+1. First, ensure that you have added your SSH public key to
518518+ your account
519519+2. Check to see that your knot has synced the key by running
520520+ `knot keys`
521521+3. Check to see if git is supplying the correct private key
522522+ when pushing: `GIT_SSH_COMMAND="ssh -v" git push ...`
523523+4. Check to see if `sshd` on the knot is rejecting the push
524524+ for some reason: `journalctl -xeu ssh` (or `sshd`,
525525+ depending on your machine). These logs are unavailable if
526526+ using docker.
527527+5. Check to see if the knot itself is rejecting the push,
528528+ depending on your setup, the logs might be in one of the
529529+ following paths:
530530+ * `/tmp/knotguard.log`
531531+ * `/home/git/log`
532532+ * `/home/git/guard.log`
504533505534# Spindles
506535···692721 NODE_ENV: "production"
693722 MY_ENV_VAR: "MY_ENV_VALUE"
694723```
724724+725725+By default, the following environment variables set:
726726+727727+- `CI` - Always set to `true` to indicate a CI environment
728728+- `TANGLED_PIPELINE_ID` - The AT URI of the current pipeline
729729+- `TANGLED_REPO_KNOT` - The repository's knot hostname
730730+- `TANGLED_REPO_DID` - The DID of the repository owner
731731+- `TANGLED_REPO_NAME` - The name of the repository
732732+- `TANGLED_REPO_DEFAULT_BRANCH` - The default branch of the
733733+ repository
734734+- `TANGLED_REPO_URL` - The full URL to the repository
735735+736736+These variables are only available when the pipeline is
737737+triggered by a push:
738738+739739+- `TANGLED_REF` - The full git reference (e.g.,
740740+ `refs/heads/main` or `refs/tags/v1.0.0`)
741741+- `TANGLED_REF_NAME` - The short name of the reference
742742+ (e.g., `main` or `v1.0.0`)
743743+- `TANGLED_REF_TYPE` - The type of reference, either
744744+ `branch` or `tag`
745745+- `TANGLED_SHA` - The commit SHA that triggered the pipeline
746746+- `TANGLED_COMMIT_SHA` - Alias for `TANGLED_SHA`
747747+748748+These variables are only available when the pipeline is
749749+triggered by a pull request:
750750+751751+- `TANGLED_PR_SOURCE_BRANCH` - The source branch of the pull
752752+ request
753753+- `TANGLED_PR_TARGET_BRANCH` - The target branch of the pull
754754+ request
755755+- `TANGLED_PR_SOURCE_SHA` - The commit SHA of the source
756756+ branch
695757696758### Steps
697759···15281590Refer to the [jujutsu
15291591documentation](https://jj-vcs.github.io/jj/latest/config/#commit-trailers)
15301592for more information.
15931593+15941594+# Troubleshooting guide
15951595+15961596+## Login issues
15971597+15981598+Owing to the distributed nature of OAuth on AT Protocol, you
15991599+may run into issues with logging in. If you run a
16001600+self-hosted PDS:
16011601+16021602+- You may need to ensure that your PDS is timesynced using
16031603+ NTP:
16041604+ * Enable the `ntpd` service
16051605+ * Run `ntpd -qg` to synchronize your clock
16061606+- You may need to increase the default request timeout:
16071607+ `NODE_OPTIONS="--network-family-autoselection-attempt-timeout=500"`
16081608+16091609+## Empty punchcard
16101610+16111611+For Tangled to register commits that you make across the
16121612+network, you need to setup one of following:
16131613+16141614+- The committer email should be a verified email associated
16151615+ to your account. You can add and verify emails on the
16161616+ settings page.
16171617+- Or, the committer email should be set to your account's
16181618+ DID: `git config user.email "did:plc:foobar". You can find
16191619+ your account's DID on the settings page
16201620+16211621+## Commit is not marked as verified
16221622+16231623+Presently, Tangled only supports SSH commit signatures.
16241624+16251625+To sign commits using an SSH key with git:
16261626+16271627+```
16281628+git config --global gpg.format ssh
16291629+git config --global user.signingkey ~/.ssh/tangled-key
16301630+```
16311631+16321632+To sign commits using an SSH key with jj, add this to your
16331633+config:
16341634+16351635+```
16361636+[signing]
16371637+behavior = "own"
16381638+backend = "ssh"
16391639+key = "~/.ssh/tangled-key"
16401640+```
16411641+16421642+## Self-hosted knot issues
16431643+16441644+If you need help troubleshooting a self-hosted knot, check
16451645+out the [knot troubleshooting
16461646+guide](/knot-self-hosting-guide.html#troubleshooting).