678 lines
30 KiB
Plaintext
678 lines
30 KiB
Plaintext
[1]Derek Sivers
|
||
|
||
Tech Independence
|
||
|
||
Contents:
|
||
|
||
0. [2]What?
|
||
1. [3]Register a domain
|
||
2. [4]Change DNS nameservers
|
||
3. [5]Create storage
|
||
4. [6]Create an SSH key
|
||
5. [7]Create your server
|
||
6. [8]SSH into root
|
||
7. [9]Customize these instructions
|
||
8. [10]Use your storage
|
||
9. [11]Contacts and Calendar
|
||
10. [12]Email sending
|
||
11. [13]Email settings
|
||
12. [14]Simple website
|
||
13. [15]File sharing in /pub/
|
||
14. [16]More indie tips
|
||
15. [17]More storage?
|
||
16. [18]Mutt = email in terminal
|
||
17. [19]Upkeep
|
||
18. [20]Certificate expired?
|
||
19. [21]Trouble? Start over
|
||
20. [22]Questions? Additions?
|
||
|
||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||
|
||
What?
|
||
|
||
Tech independence is not depending on any particular company or software.
|
||
|
||
The only tools you need are the common open source basics built into any Linux
|
||
or BSD operating system — free public-domain tools that are not owned by anyone
|
||
, and can run on any computer.
|
||
|
||
Learn a few of these basic tools, and you can run your own private server on
|
||
any computer forever, for the rest of your life. Host your own website and
|
||
email. Keep your own contacts and calendars synced with your phone. Back up and
|
||
sync your photos, movies, and music to your own private storage. No more
|
||
subscriptions needed.
|
||
|
||
You can ignore all the companies offering “solutions”, even if they are free,
|
||
because they take away self-reliance. The point is to know how to do it
|
||
yourself, not to have somebody do it for you. It’s worth a little up-front
|
||
work, like learning how to drive.
|
||
|
||
Below are simple step-by-step instructions that work. Instead of drowning you
|
||
in options, it uses an operating system called [23]OpenBSD and a hosting
|
||
company called [24]Vultr because I’ve used them for years and I know they are
|
||
good and trustworthy. But you could do this same setup with any free Linux or
|
||
BSD operating system, with any hosting company that gives you “root” access to
|
||
your own private server. You could even do it on an old laptop in your closet.
|
||
|
||
So if a company turns evil or goes out of business, no problem! You can set up
|
||
a new server anywhere else in an hour, point your domain name to the new IP
|
||
address, and it’s done. That’s tech independence — never dependent on any
|
||
particular provider or software. It’s very empowering. The instructions below
|
||
will show you how.
|
||
|
||
Register a domain
|
||
|
||
1. Go to [25]Porkbun.com.
|
||
2. Search for a domain name you like until you find one that’s available.
|
||
3. Create a new account, and pay.
|
||
4. Congratulations. You’ll use this domain name in many of the steps below.
|
||
|
||
Change DNS nameservers to vultr
|
||
|
||
1. Wherever you registered your domain name, log in there to change your
|
||
domain’s DNS nameservers.
|
||
2. It’s usually set by default to the company where you registered. So for
|
||
example a domain registered at GoDaddy will have default nameservers of
|
||
something.godaddy.com.
|
||
3. Replace those defaults with these two:
|
||
□ ns1.vultr.com
|
||
□ ns2.vultr.com
|
||
|
||
Create storage
|
||
|
||
1. Go to [26]Vultr.com.
|
||
2. Create an account and give it your credit card.
|
||
3. [27]Click here for the “[28]Add Block Storage” page.
|
||
4. Click “Block Storage (HDD)”, which says “Globally Available”
|
||
5. Below that, a list of cities. Click the one closest to you.
|
||
6. Below that, a slider lets you choose how much storage you need. If not
|
||
sure, just leave it as $1 for 40 GB.
|
||
7. Below that, in a subtle box that says “label” type the word encrypted.
|
||
8. Below that, click the “Add Block Storage” button.
|
||
|
||
Create an SSH key
|
||
|
||
1. Open a terminal.
|
||
□ Windows? Start → Windows PowerShell → Windows PowerShell
|
||
□ Mac? Applications → Utilities → Terminal
|
||
2. Type ssh-keygen -t ed25519 and hit [enter] or [return].
|
||
3. When it says, “Enter file in which to save the key (/Users/yourname/.ssh/
|
||
id_ed25519):”, hit [enter] or [return].
|
||
4. When it says, “Enter passphrase (empty for no passphrase):”, hit [enter] or
|
||
[return].
|
||
5. When it says, “Enter same passphrase again:”, hit [enter] or [return].
|
||
6. See the line that starts, “Your public key has been saved in” and ends in
|
||
“id_ed25519.pub”? That’s the file you need for the next step.
|
||
7. In a text editor, open “id_ed25519.pub”.
|
||
□ Windows? Type notepad .ssh/id_ed25519.pub
|
||
□ Mac? Type open -e .ssh/id_ed25519.pub
|
||
8. It should be a single line like this:
|
||
ssh-ed25519 AAAAC3Nz5AAAAIPIXO5icj4LUpqa2baqYQRmCZ1+NV4sBDr you@computer
|
||
9. You’ll use this in the next step: “[29]Create your server”.
|
||
|
||
Create your server
|
||
|
||
1. In your [30]Vultr.com account:
|
||
2. [31]Click here for the “[32]Deploy New Instance” page.
|
||
3. Click “Cloud Compute” (NOT “Optimized Cloud Compute”)
|
||
4. Below that, click “Intel Regular Performance”
|
||
5. Below that, IMPORTANT: click the same city you chose for your encrypted
|
||
storage in the previous step.
|
||
6. Below that, click “OpenBSD” (the yellow blowfish) then inside its box,
|
||
click “7.4 x64”
|
||
7. Below that, under Server Size, click “25 GB SSD $5/month”
|
||
8. A blue pop-up appears underneath, up-selling “For only $1.00 more you
|
||
can...”. Click “No thanks”.
|
||
9. Scroll down to “SSH Keys”, click “Add New”, then under “Name” type mykey.
|
||
10. From [33]the previous section, step 3, copy (⌘-C or Ctrl-C) the contents of
|
||
“id_ed25519.pub” and paste it into this box called “SSH Key”. It should be
|
||
a single line like this:
|
||
ssh-ed25519 AAAAC3NzaC1XO5iclCcrHbGRPoj4LUpqa2baqYQRmCZ1+NV4sBDr
|
||
you@computer
|
||
11. After pasting it into the box, click [Add SSH Key].
|
||
12. Under SSH Keys, click the box with the picture of the key called “mykey” to
|
||
give it a tick mark in the top-right corner.
|
||
13. Scroll up to “Enable Auto Backups”, click the “on” toggle button to turn it
|
||
OFF.
|
||
14. A scary pop-up says “Are you sure....”. Tick the box next to “I understand
|
||
the risks”, then click the red button “Disable Auto Backups”.
|
||
15. Under “Additional Features”, untick the box next to “Enable IPv6”, to
|
||
disable it.
|
||
16. Under “Server Hostname & Label”, type your domain name in both “server
|
||
hostname” and “server label”.
|
||
17. At the bottom, click the big blue button [“Deploy Now”].
|
||
18. Stretch your legs for a minute while waiting for your server status to
|
||
change from “Installing” to “Running”.
|
||
19. Copy and save its IP Address on your computer.
|
||
|
||
SSH into root, and get my script
|
||
|
||
1. Copy (⌘-C or Ctrl-C) the IP Address from the last step of [34]Create Your
|
||
Server.
|
||
2. Open your terminal from the [35]Create an SSH key section.
|
||
3. Whenever I say to type something into the terminal, hit your [return] or
|
||
[enter] key afterwards.
|
||
4. Type into the terminal: ssh root@YOUR-IP-ADDRESS. So for example:
|
||
ssh root@123.45.67.89
|
||
5. It should say something like:
|
||
|
||
The authenticity of host '123.45.67.78 (123.45.67.89)' can’t be established.
|
||
ED25519 key fingerprint is SHA256:OyiqVsjRX8U2f0UTUY4D0erdl6855YNRXyQk2D.
|
||
This key is not known by any other names
|
||
Are you sure you want to continue connecting (yes/no/[fingerprint])?
|
||
|
||
6. Type yes
|
||
7. It should say something like:
|
||
|
||
Warning: Permanently added '123.45.67.89' (ED25519) to the list of known hosts.
|
||
OpenBSD 7.4 (GENERIC.MP) #1396: Sun Oct 8 09:20:40 MDT 2023
|
||
Welcome to OpenBSD: The proactively secure Unix-like operating system.
|
||
|
||
8. Congratulations! You’re inside a remote computer!
|
||
9. Type ftp https://sive.rs/ti.sh
|
||
10. Type sh ti.sh
|
||
11. Watch it install, answer its questions, and do what it says.
|
||
12. Be ready to open a new terminal window, so you can leave this one
|
||
logged-in.
|
||
13. See below for help with its prompts.
|
||
|
||
Customize these instructions
|
||
|
||
Enter your domain name and the username that you create, below, and this will
|
||
customize all following instructions for you.
|
||
|
||
Your domain name? [36][ ] Your username?
|
||
[37][ ] [38][customize]
|
||
Now when you see this button: 📋 click it to copy that line so you can paste it
|
||
into your terminal, without error.
|
||
|
||
Use your encrypted storage
|
||
|
||
The [40]ti.sh script will eventually prompt you, “Now upload anything while I
|
||
wait...”. Here’s how.
|
||
|
||
Mac
|
||
|
||
Type rsync -avz Documents yourusername@yourdomain.name:/mnt/ and you will see
|
||
it uploading your Documents folder to your private encrypted storage. Use this
|
||
same format to upload any other folders, replacing “Documents” in the command.
|
||
If you are happy synchronizing on the command line like this, you can skip over
|
||
the next FreeFileSync section.
|
||
|
||
[41]FreeFileSync
|
||
|
||
Everyone using Windows should use [42]FreeFileSync. Here’s how:
|
||
|
||
1. [43]Download FreeFileSync and please give an optional donation there if you
|
||
can afford to. Donating also unlocks more features. Thanks to Jon Lis for
|
||
the recommendation.
|
||
2. Install and open FreeFileSync.
|
||
3. Top-center: click the grey [Browse] button and find the folder with the
|
||
stuff you want to upload.
|
||
4. Top-far-right: click the white cloud icon then SFTP at the top.
|
||
5. Server name or IP address: yourdomain.name
|
||
6. Left side: click (*) Key File
|
||
7. Username: yourusername
|
||
8. Browse to find your private key, called id_ed25519 from the “[44]Create an
|
||
SSH key” section. (Not the file that ends in “.pub”, but the one next to
|
||
it.) NOTE: Because the /Users/yourusername/.ssh directory is “hidden” by
|
||
Windows and Mac by default, I find it easier to just type the path
|
||
directly, like this:
|
||
□ The username, for this next line, should be your username on your home
|
||
computer, not your remote server.
|
||
□ Windows? Type 📋C:\Users\yourusername\.ssh\id_ed25519
|
||
□ Mac? Type 📋/Users/yourusername/.ssh/id_ed25519
|
||
9. Directory on server: /mnt
|
||
10. Click OK to go back to the main screen.
|
||
11. Top-right: click the green gear wheel.
|
||
12. Left button: click “MIRROR →”
|
||
13. Click OK to go back to the main screen.
|
||
14. Top-center: click “COMPARE”, and make sure your files are there.
|
||
15. Top-right: click “SYNCHRONIZE Mirror →” then [Start]
|
||
|
||
Verify and unmount
|
||
|
||
1. When it’s done uploading, log in to your server again, from your terminal.
|
||
2. Type find /mnt
|
||
3. You should see a long list of the files you uploaded.
|
||
4. Type m-x to detach your encrypted storage.
|
||
5. Type find /mnt again, and now you should see nothing there!
|
||
Congratulations! You now see how this will work in the future:
|
||
1. Log in and type “m” to attach your encrypted storage.
|
||
2. Upload your files with rsync or FreeFileSync.
|
||
3. Log in and type “m-x” to detach the storage, for security.
|
||
|
||
Contacts and Calendar
|
||
|
||
Your phone currently keeps its contacts and calendars with Google or Apple. Now
|
||
you can get them off the cloud and keep them privately on your own server.
|
||
|
||
My [47]ti.sh setup script installs a [48]CardDAV server for contacts, and [49]
|
||
CalDAV server for calendars.
|
||
|
||
Here’s how to connect your phone.
|
||
|
||
Android phone
|
||
|
||
You need an app called “[50]DAVx⁵”, so [51]install it first. Then…
|
||
|
||
1. Open the DAVx⁵ app
|
||
2. Click the orange (+) in the bottom-right
|
||
3. Click (·) “Login with URL and user name”
|
||
4. Base URL: https://dav.yourdomain.name/
|
||
5. User name: yourusername
|
||
6. Password: the “easy to type on your phone” password you made
|
||
7. Click “LOGIN” in the bottom-right corner.
|
||
8. It should work and bring you to the “Create account” page, where “Account
|
||
name” will be yourusername. Leave everything as-is and click “CREATE
|
||
ACCOUNT” in the bottom-right corner.
|
||
9. It brings you to the “CARDDAV” header. Tick the toggle to turn on next to
|
||
your domain name.
|
||
10. Click the ♻ arrows in the bottom-right corner to synchronize your contacts.
|
||
11. Click the “CALDAV” header up top. Tick the toggle to turn on next to your
|
||
domain name.
|
||
12. Click the ♻ arrows in the bottom-right corner to synchronize your calendar.
|
||
13. Go to your Calendar app, and in the top-right corner, click the round icon
|
||
there. (Might be your face or a letter.) Then change it to the one with
|
||
yourusername. After changing it, click the X in the top-left corner.
|
||
14. To add a new Event, Click [+] in the bottom-right corner, and choose “Event
|
||
” from the popup menu.
|
||
15. There might be a warning, “Switch to a Google Account to take advantage
|
||
blah blah…”. Click “dismiss”.
|
||
16. Title this event something like “Test Delete”, and notice it should be
|
||
saving to the calendar with your domain name and username. Click (Save) in
|
||
the top-right corner.
|
||
17. Check the terminal window where it should say “Calendar entry added!”
|
||
18. Go to your Contacts app, and in the bottom-right corner, click “Fix &
|
||
manage”.
|
||
19. Click “Settings”
|
||
20. Near the bottom, click “Default account for new contacts”, and change it to
|
||
the DAVx⁵ Address book with your domain name.
|
||
21. Click “< Settings” in the top-left corner.
|
||
22. In the top-right corner, click the round icon there. (Might be your face or
|
||
a letter.) Then change it to the DAVx⁵ Address book with your domain name.
|
||
Then click X in the top-left corner.
|
||
23. Click “Contacts” in the bottom-left corner. It should say “No contacts in
|
||
this account”.
|
||
24. Click + in the bottom-right corner to Create contact. Top of the next page
|
||
should say “Save to” then your domain name.
|
||
25. Add a New Contact with a name like “Test Delete”. Then click “Save” in the
|
||
top-right corner.
|
||
26. Check the terminal window where it should say “Contact added! Both work.
|
||
Congratulations.”
|
||
|
||
Apple iPhone
|
||
|
||
1. Settings → Contacts → Accounts → Add Account → Other → (under “CONTACTS”:)
|
||
Add CardDAV Account
|
||
2. Server: dav.yourdomain.name
|
||
3. User Name: yourusername
|
||
4. Password: the “easy to type on your phone” password you made
|
||
5. Click “next” in the top right corner, and it should bring you to your
|
||
“Accounts” page, where you see it listed, saying “Contacts” underneath.
|
||
6. Click Add Account → Other → (under “CALENDARS”:) Add CalDAV Account
|
||
7. Server: dav.yourdomain.name
|
||
8. User Name: yourusername
|
||
9. Password: the “easy to type on your phone” password you made
|
||
10. Click “next” in the top right corner, and it should bring you to a “CalDAV”
|
||
page, showing Calendars and Reminders. Un-tick Reminders.
|
||
11. Click “save” in the top right corner, and it should bring you to your
|
||
“Accounts” page, where you see it listed, saying “Calendars” underneath.
|
||
12. Click “< Contacts” in the top-left corner, to go back to settings for your
|
||
Contacts app.
|
||
13. At the bottom change Default Account to the one with yourdomain.name.
|
||
14. Click “< Contacts” then “< Settings”, both in the top-left corner, then
|
||
scroll down to Calendar settings and click it.
|
||
15. In Calendar settings, 2nd from the bottom should say “Default Calendar”.
|
||
Tap to change it to the one with yourdomain.name.
|
||
16. Go to your Calendar app and click the + in the top-right corner.
|
||
17. Add a New Event with a Title like “Test Delete”. Then click “Add” in the
|
||
top-right corner.
|
||
18. Check the terminal window where it should say “Calendar entry added!”
|
||
19. Go to your Contacts app and click the + in the top-right corner.
|
||
20. Add a New Contact with a name like “Test Delete”. Then click “Done” in the
|
||
top-right corner.
|
||
21. Check the terminal window where it should say “Contact added! Both work.
|
||
Congratulations.”
|
||
|
||
Email sending
|
||
|
||
1. Go to [52]Mailjet.com and sign up for their free account.
|
||
2. Go to [53]this page for API keys and [Generate secret key]
|
||
3. Give the [54]ti.sh script your API key and Secret key, and it will do the
|
||
rest.
|
||
|
||
Email settings
|
||
|
||
To do email from your phone, computer, or anywhere else, you now have an [55]
|
||
IMAP server, called [56]Dovecot. So on any device, you can add a new IMAP Mail
|
||
account, with these settings:
|
||
|
||
• Account type: IMAP
|
||
• Email address: yourusername@yourdomain.name
|
||
• Username: yourusername
|
||
• Password: the password you made for your username on your server
|
||
• Incoming mail server: yourdomain.name
|
||
• Outgoing mail server: yourdomain.name
|
||
• Connection security: SSL
|
||
• Authentication type: Basic authentication
|
||
|
||
Simple website
|
||
|
||
1. On your home computer, in your main home directory, make a directory/folder
|
||
called “htdocs”
|
||
2. [57]Download this file called “template.html” and save it in your “htdocs”
|
||
directory.
|
||
3. [58]Download this file called “style.css” and also save it in your “htdocs”
|
||
directory.
|
||
4. Make a copy of the “template.html” file, and name the copy “index.html”.
|
||
This will be your home page.
|
||
5. Edit the index.html file in a text editor (NotePad or TextEdit) and change
|
||
my default text to whatever you want.
|
||
6. When you need to add a new page, just copy the template again, call it
|
||
“about.html” or whatever, and make a link to it from the home page. The
|
||
header of each page will link back to index.html : your home page.
|
||
7. If you want to change the look of your site, just edit the style.css file.
|
||
[59]Search the web for “CSS tutorial” if needed.
|
||
8. To upload it to your public server, do one of the next two steps:
|
||
9. Apple Mac? Open a new terminal window on your computer, type
|
||
rsync -avz htdocs yourusername@yourdomain.name:/var/www/
|
||
10. Windows? [60]FreeFileSync again, but now change the “Directory on server”
|
||
to /var/www/ (you can find it by clicking [browse] or typing it directly)
|
||
then upload this htdocs directory there.
|
||
11. Go to https://yourdomain.name in your web browser, refresh the page, and
|
||
you should see your updated website.
|
||
12. Any trouble, just know that the goal is to get that index.html file into
|
||
this location on your server: /var/www/htdocs/index.html because that’s
|
||
where the web server is expecting it to be. That’s where we put the
|
||
original test file, so your new index.html file should replace that one.
|
||
13. If you want [61]short URLs, without the .html, you can (for everything
|
||
except index.html) because I set the default type to be HTML. Just remove
|
||
the “.html” from your HTML filenames, update your links, and voilà!
|
||
|
||
It’s important to know how to make a simple website by hand, and not let people
|
||
sell you on complex solutions that are the equivalent of saying you need a
|
||
jumbo jet when you really need a bicycle. For real tech independence, start by
|
||
typing your HTML files yourself. Only later, after you have many many pages,
|
||
consider a more complicated solution.
|
||
|
||
File sharing in /pub/
|
||
|
||
Your website is configured to list all files in the /pub/ directory of your
|
||
website. So basically anything in /var/www/htdocs/pub/ is public. Upload any
|
||
files you want to share.
|
||
|
||
It replaces Dropbox and similar services for sending big files. Just upload the
|
||
file to /var/www/htdocs/pub/ then find it in your web browser, copy its URL,
|
||
and send someone the URL.
|
||
|
||
If the files you want to share are already on your computer, then just make a
|
||
pub/ directory inside htdocs/ (so, htdocs/pub/), put your files in there, then
|
||
use FreeFileSync or rsync to upload them as you did in the previous section
|
||
called “[62]Simple website”. Consider them part of your website.
|
||
|
||
Or if you have a URL from somewhere else online that you want to download to
|
||
your server, just do it as we did in the numbered steps above. Then use
|
||
FreeFileSync or rsync to download from your server to your computer first,
|
||
before your next upload sync.
|
||
|
||
More indie tips
|
||
|
||
1. Use [63]Firefox.
|
||
2. Install [64]uBlock Origin in Firefox and Chrome.
|
||
3. In Firefox settings, under “Privacy and Security”, choose “[X] Delete
|
||
cookies and site data when Firefox is closed”, then close Firefox often to
|
||
erase all your cookies and logins. Browse the web anonymously, not
|
||
logged-in.
|
||
4. Replace Google Authenticator with [65]Aegis on Android or [66]Raivo on
|
||
iPhone.
|
||
5. If you use Windows, replace it with [67]Ubuntu Linux. (Use both at first,
|
||
then slowly transition.)
|
||
6. Keep your new email address as a [68]private email account that you only
|
||
give to those few people who you really want to hear from. Then your old
|
||
gmail/yahoo/outlook/etc address can be just low-priority junk, and your new
|
||
private email account won’t need spam protection.
|
||
7. Or if you don’t want to run your own email server, use [69]Mailbox.org or
|
||
[70]Fastmail but only by using your own domain name. Be yourusername@
|
||
yourdomain.name from now on. Don’t depend on anyone else’s domain for your
|
||
email or you’ll be stuck with them.
|
||
|
||
More storage?
|
||
|
||
If you need hundreds of gigabytes, or even terabytes of storage, I recommend
|
||
Hetzner’s “[71]Storage Box”. It’s the best storage value I’ve found. Also
|
||
consider [72]Backblaze Personal Backup.
|
||
|
||
I personally use Vultr’s storage (as described above) for sensitive information
|
||
I definitely want completely encrypted. Then I use Hetzner’s Storage Box for
|
||
all my photos, videos, music, and other big files that don’t absolutely need to
|
||
be encrypted.
|
||
|
||
Mutt = email in the terminal
|
||
|
||
Unless you want to read email directly on your server, skip this step.
|
||
|
||
1. ssh in to your server, then type mutt
|
||
2. You should see the subject headers, with the first email highlighted. Type
|
||
j and k a few times to go down and up the list of emails.
|
||
3. To read an email, hit [enter] or [return] when it is highlighted.
|
||
4. To go back to the list, type i (for “index”)
|
||
5. To reply, hit r then:
|
||
□ It shows “To:” so you can edit or add recipients. Hit [enter] or
|
||
[return] to leave it.
|
||
□ It shows “Subject:” so you can edit the subject. Hit [enter] or
|
||
[return] to leave it.
|
||
□ It asks “Include message in reply? ([yes]/no/?):”. Hit [enter] or
|
||
[return] for the usual norm of echoing someone’s email back at them
|
||
below your reply. Or n for not.
|
||
□ Now you are inside the [73]vi text editor which is not
|
||
self-explanatory, so I’ll walk you through a simple reply:
|
||
□ Hit i (no [return] or [enter]) to go into “insert mode” and type your
|
||
message. You’ll notice it’s on the same line as some other text, so you
|
||
might want to start by hitting [return] or [enter] a few times, then
|
||
up-arrow to go back to the first line again.
|
||
□ When done typing your message, hit your [esc] key in the very top-left
|
||
corner of your keyboard. Nothing will change on the screen, yet.
|
||
□ Type :wq (the “:” at the beginning is important) then [enter] or
|
||
[return].
|
||
□ Then you’ll see the “Compose Menu” which I think of as the “last chance
|
||
before sending” screen. Hit y to send it.
|
||
6. To send a new email, hit m then repeat those steps like you did for a
|
||
reply, except now the “To:” and “Subject:” are blank and waiting for you to
|
||
create. (For “To:”, type the email address of the person you’re emailing.)
|
||
7. To quit, hit q
|
||
|
||
[74]Mutt is a great program for reading and sending email on the command line.
|
||
It’s been my email client for 20 years. [75]Read its manual here if you want to
|
||
go deeper. It does everything.
|
||
|
||
The [76]vi text editor is a useful tool to edit text on a server. It takes a
|
||
few minutes to learn, but it’s worth learning because it’s installed by default
|
||
on every Linux/BSD server.
|
||
|
||
Upkeep
|
||
|
||
You honestly don’t have to do anything to maintain your server. It will just
|
||
work as-is for decades! But if you like to keep it up-to-date, it only takes a
|
||
minute, so run these next steps any time.
|
||
|
||
1. Log in to your server, if you are not already.
|
||
2. Type 📋doas su
|
||
3. Type 📋syspatch
|
||
4. Type 📋fw_update
|
||
5. Type 📋pkg_add -u
|
||
6. Type 📋sysupgrade
|
||
7. Type exit; exit to log out.
|
||
|
||
If that last “sysupgrade” step did not give an “Error retrieving … 404 Not
|
||
Found” error, that means your OpenBSD operating system is upgrading itself.
|
||
They release an upgrade every 6 months. In that case, [82]go to this OpenBSD
|
||
page and follow the link at the top that says “Upgrading to (7.4, etc)” to see
|
||
if there’s anything else you should know.
|
||
|
||
If the “sysupgrade” step updated your operating system and your server
|
||
rebooted, then there is just one more step:
|
||
|
||
1. Log in to your server, if you are not already.
|
||
2. Type 📋doas su
|
||
3. Type 📋sysmerge
|
||
4. Follow any instructions. Don’t worry about messing up because you can
|
||
always start over, as described below.
|
||
5. Re-do the syspatch ; fw_update ; pkg_add -u steps, above.
|
||
6. Type exit; exit to log out.
|
||
|
||
Secure certificate expired?
|
||
|
||
1. Log in to your server, if you are not already.
|
||
2. Type 📋doas su
|
||
3. Type 📋domain=yourdomain.name
|
||
4. Type 📋acme-client -v $domain
|
||
5. Type 📋rcctl restart relayd
|
||
6. That should fix it. Confirm it in your web browser. [89]Let me know if not.
|
||
7. IMPORTANT: Copy-paste this next line to make it renew automatically from
|
||
now on:
|
||
8. 📋(crontab -l 2>/dev/null; echo "11\t3\t*\t*\t5\tacme-client $domain \&\&
|
||
rcctl reload relayd") | crontab -
|
||
9. Hit [enter]. Type exit; exit to log out.
|
||
10. [91]Let me know if it happens again. (It shouldn’t.)
|
||
|
||
Trouble? Start over
|
||
|
||
I’ve tested the steps above very carefully and repeatedly. They work. So if you
|
||
hit a major problem, something not happening like it says it should, please do
|
||
this:
|
||
|
||
1. Type “cd ; m-x ; exit” in any terminals you still have open, until they are
|
||
all closed.
|
||
2. Go to [92]your Vultr account.
|
||
3. See your server instance? See to the far right, a subtle ···? Click that.
|
||
4. From its pop-up menu, click the last option: “Server Destroy”.
|
||
5. Tick the box next to “[X] Yes, destroy this server.”
|
||
6. Click the big red [Destroy Server] button.
|
||
7. This will not destroy your encrypted storage. That’s another reason we kept
|
||
it separate from the start. So if you already uploaded a bunch of your
|
||
files and want to save them, they should still be there.
|
||
8. On your own computer, in the terminal, type: rm .ssh/known_hosts
|
||
9. Go back to the section called “[93]Create your server” and try again.
|
||
|
||
Questions? Additions?
|
||
|
||
To learn more about your new server, just log in and type: [94]help
|
||
It will teach you the basics. Then for each command or file you want to know
|
||
more about, type [95]man followed by the command or filename. So for example,
|
||
log in and type…
|
||
|
||
• man [96]adduser
|
||
• man [97]ssh
|
||
• man [98]doas
|
||
• man [99]rcctl
|
||
• man [100]pkg_add
|
||
• man [101]ftp
|
||
• man [102]httpd.conf
|
||
|
||
Hit your [space] bar to scroll the page, then q to quit.
|
||
|
||
It’s one of the most wonderful things about OpenBSD: everything you need to
|
||
know is in those man pages! No need for YouTube, Google, ChatGPT, or any other
|
||
advertising-driven sources of information.
|
||
|
||
I will constantly improve this page, so [103]get on my private email list for
|
||
updates.
|
||
|
||
Until then, ask any questions. If something went wrong, please give me a very
|
||
specific description of exactly what went wrong at what step, what it was
|
||
supposed to do, and what exactly it actually did. [104]Click here to email me.
|
||
|
||
Requests for what to add? Again, just [105]email me.
|
||
|
||
|
||
References:
|
||
|
||
[1] https://sive.rs/
|
||
[2] https://sive.rs/ti#why
|
||
[3] https://sive.rs/ti#register
|
||
[4] https://sive.rs/ti#dns0
|
||
[5] https://sive.rs/ti#storage1
|
||
[6] https://sive.rs/ti#ssh
|
||
[7] https://sive.rs/ti#server1
|
||
[8] https://sive.rs/ti#server2
|
||
[9] https://sive.rs/ti#custom
|
||
[10] https://sive.rs/ti#storage4
|
||
[11] https://sive.rs/ti#radicale
|
||
[12] https://sive.rs/ti#mailjet
|
||
[13] https://sive.rs/ti#mail3
|
||
[14] https://sive.rs/ti#web1
|
||
[15] https://sive.rs/ti#web2
|
||
[16] https://sive.rs/ti#indie
|
||
[17] https://sive.rs/ti#storage5
|
||
[18] https://sive.rs/ti#mutt
|
||
[19] https://sive.rs/ti#upkeep
|
||
[20] https://sive.rs/ti#cert
|
||
[21] https://sive.rs/ti#redo
|
||
[22] https://sive.rs/ti#questions
|
||
[23] https://sive.rs/openbsd
|
||
[24] https://www.vultr.com/?ref=9541378-8H
|
||
[25] https://porkbun.com/
|
||
[26] https://www.vultr.com/?ref=6930328
|
||
[27] https://my.vultr.com/blockstorage/add/
|
||
[28] https://my.vultr.com/blockstorage/add/
|
||
[29] https://sive.rs/ti#server1
|
||
[30] https://www.vultr.com/?ref=6930328
|
||
[31] https://my.vultr.com/deploy/
|
||
[32] https://my.vultr.com/deploy/
|
||
[33] https://sive.rs/ti#ssh
|
||
[34] https://sive.rs/ti#server1
|
||
[35] https://sive.rs/ti#ssh
|
||
[40] https://sive.rs/ti.sh
|
||
[41] https://freefilesync.org/
|
||
[42] https://freefilesync.org/
|
||
[43] https://freefilesync.org/download.php
|
||
[44] https://sive.rs/ti#ssh
|
||
[47] https://sive.rs/ti.sh
|
||
[48] https://en.wikipedia.org/wiki/CardDAV
|
||
[49] https://en.wikipedia.org/wiki/CalDAV
|
||
[50] https://www.davx5.com/
|
||
[51] https://www.davx5.com/download
|
||
[52] https://app.mailjet.com/signup?lang=en_US
|
||
[53] https://app.mailjet.com/account/apikeys
|
||
[54] https://sive.rs/ti.sh
|
||
[55] https://en.wikipedia.org/wiki/Internet_Message_Access_Protocol
|
||
[56] https://www.dovecot.org/
|
||
[57] https://sive.rs/file/template.html
|
||
[58] https://sive.rs/file/style.css
|
||
[59] https://duckduckgo.com/?q=css+tutorial
|
||
[60] https://freefilesync.org/
|
||
[61] https://sive.rs/su
|
||
[62] https://sive.rs/ti#web1
|
||
[63] https://www.mozilla.org/firefox/
|
||
[64] https://ublockorigin.com/
|
||
[65] https://getaegis.app/
|
||
[66] https://raivo-otp.com/
|
||
[67] https://ubuntu.com/desktop
|
||
[68] https://sive.rs/pe
|
||
[69] https://mailbox.org/
|
||
[70] https://www.fastmail.com/
|
||
[71] https://www.hetzner.com/storage/storage-box
|
||
[72] https://www.backblaze.com/cloud-backup/personal
|
||
[73] https://duckduckgo.com/?q=vi+editor
|
||
[74] http://mutt.org/
|
||
[75] http://mutt.org/doc/manual/
|
||
[76] https://duckduckgo.com/?q=vi+editor
|
||
[82] https://www.openbsd.org/faq/
|
||
[89] https://sive.rs/contact
|
||
[91] https://sive.rs/contact
|
||
[92] https://my.vultr.com/
|
||
[93] https://sive.rs/ti#server1
|
||
[94] https://man.openbsd.org/help
|
||
[95] https://man.openbsd.org/man.1
|
||
[96] https://man.openbsd.org/adduser.8
|
||
[97] https://man.openbsd.org/ssh.1
|
||
[98] https://man.openbsd.org/doas.1
|
||
[99] https://man.openbsd.org/rcctl.8
|
||
[100] https://man.openbsd.org/pkg_add.1
|
||
[101] https://man.openbsd.org/ftp.1
|
||
[102] https://man.openbsd.org/httpd.conf.5
|
||
[103] https://sive.rs/contact
|
||
[104] https://sive.rs/contact
|
||
[105] https://sive.rs/contact
|