davideisinger.com

My personal website
Log | Files | Refs | README

sive-rs-ssi9lg.txt (30416B)


      1 [1]Derek Sivers
      2 
      3 Tech Independence
      4 
      5 Contents:
      6 
      7  0. [2]What?
      8  1. [3]Register a domain
      9  2. [4]Change DNS nameservers
     10  3. [5]Create storage
     11  4. [6]Create an SSH key
     12  5. [7]Create your server
     13  6. [8]SSH into root
     14  7. [9]Customize these instructions
     15  8. [10]Use your storage
     16  9. [11]Contacts and Calendar
     17 10. [12]Email sending
     18 11. [13]Email settings
     19 12. [14]Simple website
     20 13. [15]File sharing in /pub/
     21 14. [16]More indie tips
     22 15. [17]More storage?
     23 16. [18]Mutt = email in terminal
     24 17. [19]Upkeep
     25 18. [20]Certificate expired?
     26 19. [21]Trouble? Start over
     27 20. [22]Questions? Additions?
     28 
     29 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
     30 
     31 What?
     32 
     33 Tech independence is not depending on any particular company or software.
     34 
     35 The only tools you need are the common open source basics built into any Linux
     36 or BSD operating system — free public-domain tools that are not owned by anyone
     37 , and can run on any computer.
     38 
     39 Learn a few of these basic tools, and you can run your own private server on
     40 any computer forever, for the rest of your life. Host your own website and
     41 email. Keep your own contacts and calendars synced with your phone. Back up and
     42 sync your photos, movies, and music to your own private storage. No more
     43 subscriptions needed.
     44 
     45 You can ignore all the companies offering “solutions”, even if they are free,
     46 because they take away self-reliance. The point is to know how to do it
     47 yourself, not to have somebody do it for you. It’s worth a little up-front
     48 work, like learning how to drive.
     49 
     50 Below are simple step-by-step instructions that work. Instead of drowning you
     51 in options, it uses an operating system called [23]OpenBSD and a hosting
     52 company called [24]Vultr because I’ve used them for years and I know they are
     53 good and trustworthy. But you could do this same setup with any free Linux or
     54 BSD operating system, with any hosting company that gives you “root” access to
     55 your own private server. You could even do it on an old laptop in your closet.
     56 
     57 So if a company turns evil or goes out of business, no problem! You can set up
     58 a new server anywhere else in an hour, point your domain name to the new IP
     59 address, and it’s done. That’s tech independence — never dependent on any
     60 particular provider or software. It’s very empowering. The instructions below
     61 will show you how.
     62 
     63 Register a domain
     64 
     65  1. Go to [25]Porkbun.com.
     66  2. Search for a domain name you like until you find one that’s available.
     67  3. Create a new account, and pay.
     68  4. Congratulations. You’ll use this domain name in many of the steps below.
     69 
     70 Change DNS nameservers to vultr
     71 
     72  1. Wherever you registered your domain name, log in there to change your
     73     domain’s DNS nameservers.
     74  2. It’s usually set by default to the company where you registered. So for
     75     example a domain registered at GoDaddy will have default nameservers of
     76     something.godaddy.com.
     77  3. Replace those defaults with these two:
     78       □ ns1.vultr.com
     79       □ ns2.vultr.com
     80 
     81 Create storage
     82 
     83  1. Go to [26]Vultr.com.
     84  2. Create an account and give it your credit card.
     85  3. [27]Click here for the “[28]Add Block Storage” page.
     86  4. Click “Block Storage (HDD)”, which says “Globally Available”
     87  5. Below that, a list of cities. Click the one closest to you.
     88  6. Below that, a slider lets you choose how much storage you need. If not
     89     sure, just leave it as $1 for 40 GB.
     90  7. Below that, in a subtle box that says “label” type the word encrypted.
     91  8. Below that, click the “Add Block Storage” button.
     92 
     93 Create an SSH key
     94 
     95  1. Open a terminal.
     96       □ Windows? Start → Windows PowerShell → Windows PowerShell
     97       □ Mac? Applications → Utilities → Terminal
     98  2. Type ssh-keygen -t ed25519 and hit [enter] or [return].
     99  3. When it says, “Enter file in which to save the key (/Users/yourname/.ssh/
    100     id_ed25519):”, hit [enter] or [return].
    101  4. When it says, “Enter passphrase (empty for no passphrase):”, hit [enter] or
    102     [return].
    103  5. When it says, “Enter same passphrase again:”, hit [enter] or [return].
    104  6. See the line that starts, “Your public key has been saved in” and ends in
    105     “id_ed25519.pub”? That’s the file you need for the next step.
    106  7. In a text editor, open “id_ed25519.pub”.
    107       □ Windows? Type notepad .ssh/id_ed25519.pub
    108       □ Mac? Type open -e .ssh/id_ed25519.pub
    109  8. It should be a single line like this:
    110     ssh-ed25519 AAAAC3Nz5AAAAIPIXO5icj4LUpqa2baqYQRmCZ1+NV4sBDr you@computer
    111  9. You’ll use this in the next step: “[29]Create your server”.
    112 
    113 Create your server
    114 
    115  1. In your [30]Vultr.com account:
    116  2. [31]Click here for the “[32]Deploy New Instance” page.
    117  3. Click “Cloud Compute” (NOT “Optimized Cloud Compute”)
    118  4. Below that, click “Intel Regular Performance”
    119  5. Below that, IMPORTANT: click the same city you chose for your encrypted
    120     storage in the previous step.
    121  6. Below that, click “OpenBSD” (the yellow blowfish) then inside its box,
    122     click “7.4 x64”
    123  7. Below that, under Server Size, click “25 GB SSD $5/month”
    124  8. A blue pop-up appears underneath, up-selling “For only $1.00 more you
    125     can...”. Click “No thanks”.
    126  9. Scroll down to “SSH Keys”, click “Add New”, then under “Name” type mykey.
    127 10. From [33]the previous section, step 3, copy (⌘-C or Ctrl-C) the contents of
    128     “id_ed25519.pub” and paste it into this box called “SSH Key”. It should be
    129     a single line like this:
    130     ssh-ed25519 AAAAC3NzaC1XO5iclCcrHbGRPoj4LUpqa2baqYQRmCZ1+NV4sBDr
    131     you@computer
    132 11. After pasting it into the box, click [Add SSH Key].
    133 12. Under SSH Keys, click the box with the picture of the key called “mykey” to
    134     give it a tick mark in the top-right corner.
    135 13. Scroll up to “Enable Auto Backups”, click the “on” toggle button to turn it
    136     OFF.
    137 14. A scary pop-up says “Are you sure....”. Tick the box next to “I understand
    138     the risks”, then click the red button “Disable Auto Backups”.
    139 15. Under “Additional Features”, untick the box next to “Enable IPv6”, to
    140     disable it.
    141 16. Under “Server Hostname & Label”, type your domain name in both “server
    142     hostname” and “server label”.
    143 17. At the bottom, click the big blue button [“Deploy Now”].
    144 18. Stretch your legs for a minute while waiting for your server status to
    145     change from “Installing” to “Running”.
    146 19. Copy and save its IP Address on your computer.
    147 
    148 SSH into root, and get my script
    149 
    150  1. Copy (⌘-C or Ctrl-C) the IP Address from the last step of [34]Create Your
    151     Server.
    152  2. Open your terminal from the [35]Create an SSH key section.
    153  3. Whenever I say to type something into the terminal, hit your [return] or
    154     [enter] key afterwards.
    155  4. Type into the terminal: ssh root@YOUR-IP-ADDRESS. So for example:
    156     ssh [email protected]
    157  5. It should say something like:
    158 
    159     The authenticity of host '123.45.67.78 (123.45.67.89)' can’t be established.
    160     ED25519 key fingerprint is SHA256:OyiqVsjRX8U2f0UTUY4D0erdl6855YNRXyQk2D.
    161     This key is not known by any other names
    162     Are you sure you want to continue connecting (yes/no/[fingerprint])?
    163 
    164  6. Type yes
    165  7. It should say something like:
    166 
    167     Warning: Permanently added '123.45.67.89' (ED25519) to the list of known hosts.
    168     OpenBSD 7.4 (GENERIC.MP) #1396: Sun Oct  8 09:20:40 MDT 2023
    169     Welcome to OpenBSD: The proactively secure Unix-like operating system.
    170 
    171  8. Congratulations! You’re inside a remote computer!
    172  9. Type ftp https://sive.rs/ti.sh
    173 10. Type sh ti.sh
    174 11. Watch it install, answer its questions, and do what it says.
    175 12. Be ready to open a new terminal window, so you can leave this one
    176     logged-in.
    177 13. See below for help with its prompts.
    178 
    179 Customize these instructions
    180 
    181 Enter your domain name and the username that you create, below, and this will
    182 customize all following instructions for you.
    183 
    184 Your domain name? [36][                    ] Your username?
    185 [37][                    ] [38][customize]
    186 Now when you see this button: 📋 click it to copy that line so you can paste it
    187 into your terminal, without error.
    188 
    189 Use your encrypted storage
    190 
    191 The [40]ti.sh script will eventually prompt you, “Now upload anything while I
    192 wait...”. Here’s how.
    193 
    194 Mac
    195 
    196 Type rsync -avz Documents [email protected]:/mnt/ and you will see
    197 it uploading your Documents folder to your private encrypted storage. Use this
    198 same format to upload any other folders, replacing “Documents” in the command.
    199 If you are happy synchronizing on the command line like this, you can skip over
    200 the next FreeFileSync section.
    201 
    202 [41]FreeFileSync
    203 
    204 Everyone using Windows should use [42]FreeFileSync. Here’s how:
    205 
    206  1. [43]Download FreeFileSync and please give an optional donation there if you
    207     can afford to. Donating also unlocks more features. Thanks to Jon Lis for
    208     the recommendation.
    209  2. Install and open FreeFileSync.
    210  3. Top-center: click the grey [Browse] button and find the folder with the
    211     stuff you want to upload.
    212  4. Top-far-right: click the white cloud icon then SFTP at the top.
    213  5. Server name or IP address: yourdomain.name
    214  6. Left side: click (*) Key File
    215  7. Username: yourusername
    216  8. Browse to find your private key, called id_ed25519 from the “[44]Create an
    217     SSH key” section. (Not the file that ends in “.pub”, but the one next to
    218     it.) NOTE: Because the /Users/yourusername/.ssh directory is “hidden” by
    219     Windows and Mac by default, I find it easier to just type the path
    220     directly, like this:
    221       □ The username, for this next line, should be your username on your home
    222         computer, not your remote server.
    223       □ Windows? Type 📋C:\Users\yourusername\.ssh\id_ed25519
    224       □ Mac? Type 📋/Users/yourusername/.ssh/id_ed25519
    225  9. Directory on server: /mnt
    226 10. Click OK to go back to the main screen.
    227 11. Top-right: click the green gear wheel.
    228 12. Left button: click “MIRROR →”
    229 13. Click OK to go back to the main screen.
    230 14. Top-center: click “COMPARE”, and make sure your files are there.
    231 15. Top-right: click “SYNCHRONIZE Mirror →” then [Start]
    232 
    233 Verify and unmount
    234 
    235  1. When it’s done uploading, log in to your server again, from your terminal.
    236  2. Type find /mnt
    237  3. You should see a long list of the files you uploaded.
    238  4. Type m-x to detach your encrypted storage.
    239  5. Type find /mnt again, and now you should see nothing there!
    240     Congratulations! You now see how this will work in the future:
    241      1. Log in and type “m” to attach your encrypted storage.
    242      2. Upload your files with rsync or FreeFileSync.
    243      3. Log in and type “m-x” to detach the storage, for security.
    244 
    245 Contacts and Calendar
    246 
    247 Your phone currently keeps its contacts and calendars with Google or Apple. Now
    248 you can get them off the cloud and keep them privately on your own server.
    249 
    250 My [47]ti.sh setup script installs a [48]CardDAV server for contacts, and [49]
    251 CalDAV server for calendars.
    252 
    253 Here’s how to connect your phone.
    254 
    255 Android phone
    256 
    257 You need an app called “[50]DAVx⁵”, so [51]install it first. Then…
    258 
    259  1. Open the DAVx⁵ app
    260  2. Click the orange (+) in the bottom-right
    261  3. Click (·) “Login with URL and user name”
    262  4. Base URL: https://dav.yourdomain.name/
    263  5. User name: yourusername
    264  6. Password: the “easy to type on your phone” password you made
    265  7. Click “LOGIN” in the bottom-right corner.
    266  8. It should work and bring you to the “Create account” page, where “Account
    267     name” will be yourusername. Leave everything as-is and click “CREATE
    268     ACCOUNT” in the bottom-right corner.
    269  9. It brings you to the “CARDDAV” header. Tick the toggle to turn on next to
    270     your domain name.
    271 10. Click the ♻ arrows in the bottom-right corner to synchronize your contacts.
    272 11. Click the “CALDAV” header up top. Tick the toggle to turn on next to your
    273     domain name.
    274 12. Click the ♻ arrows in the bottom-right corner to synchronize your calendar.
    275 13. Go to your Calendar app, and in the top-right corner, click the round icon
    276     there. (Might be your face or a letter.) Then change it to the one with 
    277     yourusername. After changing it, click the X in the top-left corner.
    278 14. To add a new Event, Click [+] in the bottom-right corner, and choose “Event
    279     ” from the popup menu.
    280 15. There might be a warning, “Switch to a Google Account to take advantage
    281     blah blah…”. Click “dismiss”.
    282 16. Title this event something like “Test Delete”, and notice it should be
    283     saving to the calendar with your domain name and username. Click (Save) in
    284     the top-right corner.
    285 17. Check the terminal window where it should say “Calendar entry added!”
    286 18. Go to your Contacts app, and in the bottom-right corner, click “Fix &
    287     manage”.
    288 19. Click “Settings”
    289 20. Near the bottom, click “Default account for new contacts”, and change it to
    290     the DAVx⁵ Address book with your domain name.
    291 21. Click “< Settings” in the top-left corner.
    292 22. In the top-right corner, click the round icon there. (Might be your face or
    293     a letter.) Then change it to the DAVx⁵ Address book with your domain name.
    294     Then click X in the top-left corner.
    295 23. Click “Contacts” in the bottom-left corner. It should say “No contacts in
    296     this account”.
    297 24. Click + in the bottom-right corner to Create contact. Top of the next page
    298     should say “Save to” then your domain name.
    299 25. Add a New Contact with a name like “Test Delete”. Then click “Save” in the
    300     top-right corner.
    301 26. Check the terminal window where it should say “Contact added! Both work.
    302     Congratulations.”
    303 
    304 Apple iPhone
    305 
    306  1. Settings → Contacts → Accounts → Add Account → Other → (under “CONTACTS”:)
    307     Add CardDAV Account
    308  2. Server: dav.yourdomain.name
    309  3. User Name: yourusername
    310  4. Password: the “easy to type on your phone” password you made
    311  5. Click “next” in the top right corner, and it should bring you to your
    312     “Accounts” page, where you see it listed, saying “Contacts” underneath.
    313  6. Click Add Account → Other → (under “CALENDARS”:) Add CalDAV Account
    314  7. Server: dav.yourdomain.name
    315  8. User Name: yourusername
    316  9. Password: the “easy to type on your phone” password you made
    317 10. Click “next” in the top right corner, and it should bring you to a “CalDAV”
    318     page, showing Calendars and Reminders. Un-tick Reminders.
    319 11. Click “save” in the top right corner, and it should bring you to your
    320     “Accounts” page, where you see it listed, saying “Calendars” underneath.
    321 12. Click “< Contacts” in the top-left corner, to go back to settings for your
    322     Contacts app.
    323 13. At the bottom change Default Account to the one with yourdomain.name.
    324 14. Click “< Contacts” then “< Settings”, both in the top-left corner, then
    325     scroll down to Calendar settings and click it.
    326 15. In Calendar settings, 2nd from the bottom should say “Default Calendar”.
    327     Tap to change it to the one with yourdomain.name.
    328 16. Go to your Calendar app and click the + in the top-right corner.
    329 17. Add a New Event with a Title like “Test Delete”. Then click “Add” in the
    330     top-right corner.
    331 18. Check the terminal window where it should say “Calendar entry added!”
    332 19. Go to your Contacts app and click the + in the top-right corner.
    333 20. Add a New Contact with a name like “Test Delete”. Then click “Done” in the
    334     top-right corner.
    335 21. Check the terminal window where it should say “Contact added! Both work.
    336     Congratulations.”
    337 
    338 Email sending
    339 
    340  1. Go to [52]Mailjet.com and sign up for their free account.
    341  2. Go to [53]this page for API keys and [Generate secret key]
    342  3. Give the [54]ti.sh script your API key and Secret key, and it will do the
    343     rest.
    344 
    345 Email settings
    346 
    347 To do email from your phone, computer, or anywhere else, you now have an [55]
    348 IMAP server, called [56]Dovecot. So on any device, you can add a new IMAP Mail
    349 account, with these settings:
    350 
    351   • Account type: IMAP
    352   • Email address: [email protected]
    353   • Username: yourusername
    354   • Password: the password you made for your username on your server
    355   • Incoming mail server: yourdomain.name
    356   • Outgoing mail server: yourdomain.name
    357   • Connection security: SSL
    358   • Authentication type: Basic authentication
    359 
    360 Simple website
    361 
    362  1. On your home computer, in your main home directory, make a directory/folder
    363     called “htdocs”
    364  2. [57]Download this file called “template.html” and save it in your “htdocs”
    365     directory.
    366  3. [58]Download this file called “style.css” and also save it in your “htdocs”
    367     directory.
    368  4. Make a copy of the “template.html” file, and name the copy “index.html”.
    369     This will be your home page.
    370  5. Edit the index.html file in a text editor (NotePad or TextEdit) and change
    371     my default text to whatever you want.
    372  6. When you need to add a new page, just copy the template again, call it
    373     “about.html” or whatever, and make a link to it from the home page. The
    374     header of each page will link back to index.html : your home page.
    375  7. If you want to change the look of your site, just edit the style.css file. 
    376     [59]Search the web for “CSS tutorial” if needed.
    377  8. To upload it to your public server, do one of the next two steps:
    378  9. Apple Mac? Open a new terminal window on your computer, type
    379     rsync -avz htdocs [email protected]:/var/www/
    380 10. Windows? [60]FreeFileSync again, but now change the “Directory on server”
    381     to /var/www/ (you can find it by clicking [browse] or typing it directly)
    382     then upload this htdocs directory there.
    383 11. Go to https://yourdomain.name in your web browser, refresh the page, and
    384     you should see your updated website.
    385 12. Any trouble, just know that the goal is to get that index.html file into
    386     this location on your server: /var/www/htdocs/index.html because that’s
    387     where the web server is expecting it to be. That’s where we put the
    388     original test file, so your new index.html file should replace that one.
    389 13. If you want [61]short URLs, without the .html, you can (for everything
    390     except index.html) because I set the default type to be HTML. Just remove
    391     the “.html” from your HTML filenames, update your links, and voilà!
    392 
    393 It’s important to know how to make a simple website by hand, and not let people
    394 sell you on complex solutions that are the equivalent of saying you need a
    395 jumbo jet when you really need a bicycle. For real tech independence, start by
    396 typing your HTML files yourself. Only later, after you have many many pages,
    397 consider a more complicated solution.
    398 
    399 File sharing in /pub/
    400 
    401 Your website is configured to list all files in the /pub/ directory of your
    402 website. So basically anything in /var/www/htdocs/pub/ is public. Upload any
    403 files you want to share.
    404 
    405 It replaces Dropbox and similar services for sending big files. Just upload the
    406 file to /var/www/htdocs/pub/ then find it in your web browser, copy its URL,
    407 and send someone the URL.
    408 
    409 If the files you want to share are already on your computer, then just make a
    410 pub/ directory inside htdocs/ (so, htdocs/pub/), put your files in there, then
    411 use FreeFileSync or rsync to upload them as you did in the previous section
    412 called “[62]Simple website”. Consider them part of your website.
    413 
    414 Or if you have a URL from somewhere else online that you want to download to
    415 your server, just do it as we did in the numbered steps above. Then use
    416 FreeFileSync or rsync to download from your server to your computer first,
    417 before your next upload sync.
    418 
    419 More indie tips
    420 
    421  1. Use [63]Firefox.
    422  2. Install [64]uBlock Origin in Firefox and Chrome.
    423  3. In Firefox settings, under “Privacy and Security”, choose “[X] Delete
    424     cookies and site data when Firefox is closed”, then close Firefox often to
    425     erase all your cookies and logins. Browse the web anonymously, not
    426     logged-in.
    427  4. Replace Google Authenticator with [65]Aegis on Android or [66]Raivo on
    428     iPhone.
    429  5. If you use Windows, replace it with [67]Ubuntu Linux. (Use both at first,
    430     then slowly transition.)
    431  6. Keep your new email address as a [68]private email account that you only
    432     give to those few people who you really want to hear from. Then your old
    433     gmail/yahoo/outlook/etc address can be just low-priority junk, and your new
    434     private email account won’t need spam protection.
    435  7. Or if you don’t want to run your own email server, use [69]Mailbox.org or 
    436     [70]Fastmail but only by using your own domain name. Be yourusername@
    437     yourdomain.name from now on. Don’t depend on anyone else’s domain for your
    438     email or you’ll be stuck with them.
    439 
    440 More storage?
    441 
    442 If you need hundreds of gigabytes, or even terabytes of storage, I recommend
    443 Hetzner’s “[71]Storage Box”. It’s the best storage value I’ve found. Also
    444 consider [72]Backblaze Personal Backup.
    445 
    446 I personally use Vultr’s storage (as described above) for sensitive information
    447 I definitely want completely encrypted. Then I use Hetzner’s Storage Box for
    448 all my photos, videos, music, and other big files that don’t absolutely need to
    449 be encrypted.
    450 
    451 Mutt = email in the terminal
    452 
    453 Unless you want to read email directly on your server, skip this step.
    454 
    455  1. ssh in to your server, then type mutt
    456  2. You should see the subject headers, with the first email highlighted. Type
    457     j and k a few times to go down and up the list of emails.
    458  3. To read an email, hit [enter] or [return] when it is highlighted.
    459  4. To go back to the list, type i (for “index”)
    460  5. To reply, hit r then:
    461       □ It shows “To:” so you can edit or add recipients. Hit [enter] or
    462         [return] to leave it.
    463       □ It shows “Subject:” so you can edit the subject. Hit [enter] or
    464         [return] to leave it.
    465       □ It asks “Include message in reply? ([yes]/no/?):”. Hit [enter] or
    466         [return] for the usual norm of echoing someone’s email back at them
    467         below your reply. Or n for not.
    468       □ Now you are inside the [73]vi text editor which is not
    469         self-explanatory, so I’ll walk you through a simple reply:
    470       □ Hit i (no [return] or [enter]) to go into “insert mode” and type your
    471         message. You’ll notice it’s on the same line as some other text, so you
    472         might want to start by hitting [return] or [enter] a few times, then
    473         up-arrow to go back to the first line again.
    474       □ When done typing your message, hit your [esc] key in the very top-left
    475         corner of your keyboard. Nothing will change on the screen, yet.
    476       □ Type :wq (the “:” at the beginning is important) then [enter] or
    477         [return].
    478       □ Then you’ll see the “Compose Menu” which I think of as the “last chance
    479         before sending” screen. Hit y to send it.
    480  6. To send a new email, hit m then repeat those steps like you did for a
    481     reply, except now the “To:” and “Subject:” are blank and waiting for you to
    482     create. (For “To:”, type the email address of the person you’re emailing.)
    483  7. To quit, hit q
    484 
    485 [74]Mutt is a great program for reading and sending email on the command line.
    486 It’s been my email client for 20 years. [75]Read its manual here if you want to
    487 go deeper. It does everything.
    488 
    489 The [76]vi text editor is a useful tool to edit text on a server. It takes a
    490 few minutes to learn, but it’s worth learning because it’s installed by default
    491 on every Linux/BSD server.
    492 
    493 Upkeep
    494 
    495 You honestly don’t have to do anything to maintain your server. It will just
    496 work as-is for decades! But if you like to keep it up-to-date, it only takes a
    497 minute, so run these next steps any time.
    498 
    499  1. Log in to your server, if you are not already.
    500  2. Type 📋doas su
    501  3. Type 📋syspatch
    502  4. Type 📋fw_update
    503  5. Type 📋pkg_add -u
    504  6. Type 📋sysupgrade
    505  7. Type exit; exit to log out.
    506 
    507 If that last “sysupgrade” step did not give an “Error retrieving … 404 Not
    508 Found” error, that means your OpenBSD operating system is upgrading itself.
    509 They release an upgrade every 6 months. In that case, [82]go to this OpenBSD
    510 page and follow the link at the top that says “Upgrading to (7.4, etc)” to see
    511 if there’s anything else you should know.
    512 
    513 If the “sysupgrade” step updated your operating system and your server
    514 rebooted, then there is just one more step:
    515 
    516  1. Log in to your server, if you are not already.
    517  2. Type 📋doas su
    518  3. Type 📋sysmerge
    519  4. Follow any instructions. Don’t worry about messing up because you can
    520     always start over, as described below.
    521  5. Re-do the syspatch ; fw_update ; pkg_add -u steps, above.
    522  6. Type exit; exit to log out.
    523 
    524 Secure certificate expired?
    525 
    526  1. Log in to your server, if you are not already.
    527  2. Type 📋doas su
    528  3. Type 📋domain=yourdomain.name
    529  4. Type 📋acme-client -v $domain
    530  5. Type 📋rcctl restart relayd
    531  6. That should fix it. Confirm it in your web browser. [89]Let me know if not.
    532  7. IMPORTANT: Copy-paste this next line to make it renew automatically from
    533     now on:
    534  8. 📋(crontab -l 2>/dev/null; echo "11\t3\t*\t*\t5\tacme-client $domain \&\&
    535     rcctl reload relayd") | crontab -
    536  9. Hit [enter]. Type exit; exit to log out.
    537 10. [91]Let me know if it happens again. (It shouldn’t.)
    538 
    539 Trouble? Start over
    540 
    541 I’ve tested the steps above very carefully and repeatedly. They work. So if you
    542 hit a major problem, something not happening like it says it should, please do
    543 this:
    544 
    545  1. Type “cd ; m-x ; exit” in any terminals you still have open, until they are
    546     all closed.
    547  2. Go to [92]your Vultr account.
    548  3. See your server instance? See to the far right, a subtle ···? Click that.
    549  4. From its pop-up menu, click the last option: “Server Destroy”.
    550  5. Tick the box next to “[X] Yes, destroy this server.”
    551  6. Click the big red [Destroy Server] button.
    552  7. This will not destroy your encrypted storage. That’s another reason we kept
    553     it separate from the start. So if you already uploaded a bunch of your
    554     files and want to save them, they should still be there.
    555  8. On your own computer, in the terminal, type: rm .ssh/known_hosts
    556  9. Go back to the section called “[93]Create your server” and try again.
    557 
    558 Questions? Additions?
    559 
    560 To learn more about your new server, just log in and type: [94]help
    561 It will teach you the basics. Then for each command or file you want to know
    562 more about, type [95]man followed by the command or filename. So for example,
    563 log in and type…
    564 
    565   • man [96]adduser
    566   • man [97]ssh
    567   • man [98]doas
    568   • man [99]rcctl
    569   • man [100]pkg_add
    570   • man [101]ftp
    571   • man [102]httpd.conf
    572 
    573 Hit your [space] bar to scroll the page, then q to quit.
    574 
    575 It’s one of the most wonderful things about OpenBSD: everything you need to
    576 know is in those man pages! No need for YouTube, Google, ChatGPT, or any other
    577 advertising-driven sources of information.
    578 
    579 I will constantly improve this page, so [103]get on my private email list for
    580 updates.
    581 
    582 Until then, ask any questions. If something went wrong, please give me a very
    583 specific description of exactly what went wrong at what step, what it was
    584 supposed to do, and what exactly it actually did. [104]Click here to email me.
    585 
    586 Requests for what to add? Again, just [105]email me.
    587 
    588 
    589 References:
    590 
    591 [1] https://sive.rs/
    592 [2] https://sive.rs/ti#why
    593 [3] https://sive.rs/ti#register
    594 [4] https://sive.rs/ti#dns0
    595 [5] https://sive.rs/ti#storage1
    596 [6] https://sive.rs/ti#ssh
    597 [7] https://sive.rs/ti#server1
    598 [8] https://sive.rs/ti#server2
    599 [9] https://sive.rs/ti#custom
    600 [10] https://sive.rs/ti#storage4
    601 [11] https://sive.rs/ti#radicale
    602 [12] https://sive.rs/ti#mailjet
    603 [13] https://sive.rs/ti#mail3
    604 [14] https://sive.rs/ti#web1
    605 [15] https://sive.rs/ti#web2
    606 [16] https://sive.rs/ti#indie
    607 [17] https://sive.rs/ti#storage5
    608 [18] https://sive.rs/ti#mutt
    609 [19] https://sive.rs/ti#upkeep
    610 [20] https://sive.rs/ti#cert
    611 [21] https://sive.rs/ti#redo
    612 [22] https://sive.rs/ti#questions
    613 [23] https://sive.rs/openbsd
    614 [24] https://www.vultr.com/?ref=9541378-8H
    615 [25] https://porkbun.com/
    616 [26] https://www.vultr.com/?ref=6930328
    617 [27] https://my.vultr.com/blockstorage/add/
    618 [28] https://my.vultr.com/blockstorage/add/
    619 [29] https://sive.rs/ti#server1
    620 [30] https://www.vultr.com/?ref=6930328
    621 [31] https://my.vultr.com/deploy/
    622 [32] https://my.vultr.com/deploy/
    623 [33] https://sive.rs/ti#ssh
    624 [34] https://sive.rs/ti#server1
    625 [35] https://sive.rs/ti#ssh
    626 [40] https://sive.rs/ti.sh
    627 [41] https://freefilesync.org/
    628 [42] https://freefilesync.org/
    629 [43] https://freefilesync.org/download.php
    630 [44] https://sive.rs/ti#ssh
    631 [47] https://sive.rs/ti.sh
    632 [48] https://en.wikipedia.org/wiki/CardDAV
    633 [49] https://en.wikipedia.org/wiki/CalDAV
    634 [50] https://www.davx5.com/
    635 [51] https://www.davx5.com/download
    636 [52] https://app.mailjet.com/signup?lang=en_US
    637 [53] https://app.mailjet.com/account/apikeys
    638 [54] https://sive.rs/ti.sh
    639 [55] https://en.wikipedia.org/wiki/Internet_Message_Access_Protocol
    640 [56] https://www.dovecot.org/
    641 [57] https://sive.rs/file/template.html
    642 [58] https://sive.rs/file/style.css
    643 [59] https://duckduckgo.com/?q=css+tutorial
    644 [60] https://freefilesync.org/
    645 [61] https://sive.rs/su
    646 [62] https://sive.rs/ti#web1
    647 [63] https://www.mozilla.org/firefox/
    648 [64] https://ublockorigin.com/
    649 [65] https://getaegis.app/
    650 [66] https://raivo-otp.com/
    651 [67] https://ubuntu.com/desktop
    652 [68] https://sive.rs/pe
    653 [69] https://mailbox.org/
    654 [70] https://www.fastmail.com/
    655 [71] https://www.hetzner.com/storage/storage-box
    656 [72] https://www.backblaze.com/cloud-backup/personal
    657 [73] https://duckduckgo.com/?q=vi+editor
    658 [74] http://mutt.org/
    659 [75] http://mutt.org/doc/manual/
    660 [76] https://duckduckgo.com/?q=vi+editor
    661 [82] https://www.openbsd.org/faq/
    662 [89] https://sive.rs/contact
    663 [91] https://sive.rs/contact
    664 [92] https://my.vultr.com/
    665 [93] https://sive.rs/ti#server1
    666 [94] https://man.openbsd.org/help
    667 [95] https://man.openbsd.org/man.1
    668 [96] https://man.openbsd.org/adduser.8
    669 [97] https://man.openbsd.org/ssh.1
    670 [98] https://man.openbsd.org/doas.1
    671 [99] https://man.openbsd.org/rcctl.8
    672 [100] https://man.openbsd.org/pkg_add.1
    673 [101] https://man.openbsd.org/ftp.1
    674 [102] https://man.openbsd.org/httpd.conf.5
    675 [103] https://sive.rs/contact
    676 [104] https://sive.rs/contact
    677 [105] https://sive.rs/contact