This commit is contained in:
2025-11-07 13:34:32 -08:00
commit 1e8c5a972b
436 changed files with 11000 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
---
title: Welcome
---
# Welcome to Writebook
Thanks for downloading Writebook.
Writebook is remarkably simple software that allows you to publish text and pictures in a simple, browsable online book format. It's independent publishing for everyone.
Use it for everything from an instruction manual (like this one!), to employee handbooks, internal technical runbooks, graphic novels, collections of short stories, poetry, blog posts, novels, or family history. Put it all into Writebook and instantly publish to the web.
And because you host it yourself, you own all your own data. With no limits on readers or writers, you can create as many books as you like. You're in control.
In the pages that follow we'll help you get started with Writebook and show you how it all works.
We can't wait to see what you make with it!

View File

@@ -0,0 +1,40 @@
---
title: Installation
---
# Installation
Since Writebook is something you need to install and host yourself, youll need a few things before you begin:
1. Your own domain name.
2. A web server connected to the internet.
3. Some basic technical know-how.
While Writebook isnt difficult to set up, if youre not a technical person you might want to get a techy friend to help.
Ok, lets get into it.
Heres how to get it running on your end:
1. **FIRST, pick a machine to host Writebook.** If you need one in the cloud, we recommend checking out <a href="https://www.digitalocean.com" target="_blank">Digital Ocean</a> ([instructions](/2/the-writebook-manual/180/installing-on-digital-ocean)) or <a href="https://www.hetzner.com" target="_blank">Hetzner</a> ([instructions](/2/the-writebook-manual/181/installing-on-hetzner)).
2. **THEN, point DNS to the IP address of the machine thatll be hosting Writebook**. You need to point a domain (example.com) or subdomain (books.example.com) to the IP address of the machine hosting Writebook. Make sure its a straight DNS pointer, no proxying! (Dont worry about SSL, Writebook will automatically set that up for you).
3. **NEXT, connect a terminal to the machine**. To run the install command, you must connect to the machine youre using with either `SSH` or a web-based cloud console.
4. **LAST, install Writebook with one simple command**. Paste the command you received via email into the terminal on your server and wait while everything is installed (this may take up to 5 minutes).
You personal install command will look something like this:
```
/bin/bash -c "$(curl -fsSL http://once.test/install/5555-5555-5555-5555)"
```
**IMPORTANT NOTE: Do not give this install command out to anyone, or share it on the public internet. It is personalized to you, and the license is tied back to you. Your personalized purchase token can be found in the email you received after you downloaded Writebook**
Running this command will automatically install Docker on your server if youre using Linux (which is what everything in the cloud usually runs), then download the latest Writebook application as a container that can run on top of Docker. In the process, itll ask for the domain name youre using to host Writebook, so that we can configure an SSL certificate for you.
![Screenshot 2024-06-19 at 8.02.28PM.png](/u/screenshot-2024-06-19-at-8-02-28-pm-PFWfLF.png)
Thats it! Now youre ready to setup the first user on the new installation. Go to the `https://YOUR-DOMAIN` and the process will begin. Then youll be ready to invite the rest of your team to the system.
Your Writebook installation will automatically update to the latest version every night at 2am (local time of your server). You can turn this off via the once command. You can also use this command to take a backup of your data, reset a password, and several other administrative functions. Just connect a terminal to the machine again and run the once command to see all the options.
Enjoy publishing with Writebook!
**P.S.** If youd like to run multiple installations of Writebook, youll need to get one license per installation/domain.

View File

@@ -0,0 +1,31 @@
---
title: Users, Readers & Writers
---
# Users, Readers & Writers
You can use Writebook alone, or invite others to publish with you. Users invited to Writebook can read books that are private to just your team, create their own books, or you can choose which books they can contribute to.
![users.png](/u/users-GdhgKg.png)
## Inviting people
Your Writebook has a special join link you can share with people. When they hit the link they will be asked to enter their name, email address, and set a password for their account. Once they do, they'll be immediately signed in.
You can find the join link by hitting the people button on the index of books. There you'll see the special URL which you can share via QR code or copy it to paste into an email, text, and chat.
## Administrators
Hit the _Crown_ button next to a person to designate them as an _Administrator_. Admins have access to every book on the account and can do things like remove people from the account, help them get back in if they forget their password, and regenerate the join URL if it falls into the wrong hands.
## Book Permissions
For each book there are readers and writers. When you create a book you'll have the chance to choose who on the account can read it and who has permission to edit it.
![book-permissions.png](/u/book-permissions-QQFdnG.png)
### Readers
Readers can see the book but can't make any edits or change any settings. They must be signed in to read it if the book isn't available on the public internet. More on that in a later chapter.
### Writers
Writers all have full permission to read, edit, and change anything in the book. They can change the title, author, cover and any text or pictures. Admins are always writers.
### Everyone
Flip the _Everyone_ switch to give everyone on the account read access to the book—this includes anyone who joins the account later. This setting is ideal for something like a company handbook that you want everyone on your team to instantly have access to. You can give writer access to individuals even when everyone is on.

View File

@@ -0,0 +1,13 @@
---
title: Creating your book
---
# Creating your book
From the index of books, hit the green `+` button to make your first book. Fill out the title, optional subtitle, and author. You can also upload a cover image if you have one. Finally, if there are other people on your account you can choose who can read and who can edit your book with you. All of this can be changed later so don't sweat it if you don't have it all figured out yet.
## Managing pages
The table of contents is where you'll build the structure of your book. Think of it like a file manager where you can add [Text Pages, Section Pages, and Picture Pages](/1/the-writebook-manual/5/text-pages-section-pages-and-picture-pages). If you're used to writing starting with an outline, you're going to love it.
The table of contents can be displayed at a list or as a grid of thumbnail representations of your pages.
You can also rearrange and remove pages here.

View File

@@ -0,0 +1,17 @@
---
title: Text Pages, Section Pages, and Picture Pages
---
# Text Pages, Section Pages, and Picture Pages
There are three kinds of pages you can use to create your book.
![Screenshot 2024-06-19 at 8.16.09PM.png](/u/screenshot-2024-06-19-at-8-16-09-pm-1mjVns.png)
## Text Pages
Text Pages can be as long as you want. They're for long-form formatted text. Text Pages are formatted with <a href="https://daringfireball.net/projects/markdown/" target="_blank">Markdown</a>, a simple formatting tool for writing on the web.
## Section Pages
Books in Writebook have a flat structure, just like physical books. Insert a Section Page to designate a new part, section, or chapter; or for quotations or short bold statements.
## Picture Pages
Picture Pages hold a single, full-size individual image with an optional caption.

View File

@@ -0,0 +1,28 @@
---
title: Writing with Writebook
---
# Writing
We've designed Writebook to be a calm, enjoyable and distraction-free place to write.
Here's what you need to know.
## Editing mode
The first step when working on your book is to flip the switch and enter _Editing mode_. That will reveal the page toolbar and save button. Edit mode stays on even as you move around to other pages in your book while working. You can turn it off when you're done working or toggle it anytime to preview your changes as readers will see them.
![edit-mode.gif](/u/edit-mode-ygeCcM.gif)
## Autosave
Writebook automatically saves as you write so you don't have to think about saving or worry about losing your work. The _Save_ button in the page toolbar continually comminicates where the are unsaved changes, when it's in the process of saving, and when all changes have been saved. You can hit the button if you want to, but it'll save for you even if you don't.
![autosave.gif](/u/autosave-Ssql4X.gif)
## Full Screen
For more immersive, distraction-free writing hit the expand button at the top of the screen to enter fullscreen mode (on supported devices). [Full Screen](/2/the-writebook-manual/170/reading#fullscreen) hides most of the clutter and busyness of your device and operating system so you can focus on your work. _Hint: you can use Full Screen while reading, too!_
## Version history
As you work on your book, Writebook will track when you've made a batch of changes and record them as a new version. Hit the _History_ button next to the _Save_ button to browse through previous versions of any page.

View File

@@ -0,0 +1,97 @@
---
title: Using Markdown
---
# Using Markdown
Text Pages in Writebook use <a href="https://daringfireball.net/projects/markdown/" target="_blank">Markdown</a>, a simple formatting tool for writing on the web.
If you're already a Markdown expert, you can write your book with the same formatting you're accustomed to. Below you'll find a handy reference.
But if you're new to Markdown, Writebook's text editing toolbar has the most common formatting tools for anyone who's familiar with a word processor.
![markdown-toolbar.png](/u/markdown-toolbar-lnzfdA.png)
When you hit a formatting button, Writebook will wrap selected text in the corresponding Markdown formatting characters.
## Basic formatting
| Markdown | Converted to HTML | Result |
|----|---|----|
| `**bold**` | `<strong>bold</strong>` | **bold** |
| `_italic_` | `<em>italic</em>` | _italic_ |
| `` `code` `` | `<code>code</code>` | `code` |
| `[link](url)` | `<a href="url">link</a>` | [link](url) |
## Headings
Heading levels 16 are indicated with one or more `#` characters.
```
# Heading 1
## Heading 2
### Heading 3
#### Heading 4
##### Heading 5
###### Heading 6
```
# Heading 1
## Heading 2
### Heading 3
#### Heading 4
##### Heading 5
###### Heading 6
***
## Block quotations
Use an email style `>` to create a block quotation.
```
> It was the best of times, it was the worst of times, it was the age of wisdom, it was the age of foolishness, it was the epoch of belief, it was the epoch of incredulity, it was the season of light, it was the season of darkness, it was the spring of hope, it was the winter of despair, we had everything before us, we had nothing before us, we were all going direct to heaven, we were all going direct the other wayin short, the period was so far like the present period, that some of its noisiest authorities insisted on its being received, for good or for evil, in the superlative degree of comparison only.
```
> It was the best of times, it was the worst of times, it was the age of wisdom, it was the age of foolishness, it was the epoch of belief, it was the epoch of incredulity, it was the season of light, it was the season of darkness, it was the spring of hope, it was the winter of despair, we had everything before us, we had nothing before us, we were all going direct to heaven, we were all going direct the other wayin short, the period was so far like the present period, that some of its noisiest authorities insisted on its being received, for good or for evil, in the superlative degree of comparison only.
***
## Code blocks
Use three backticks to create a multi-line code block. Syntax highlighting is available when you specify the code language of the block.
<pre><code>``` ruby
puts 'Hello, Writebook!' # Print out "Hello, Writebook!"
```</code></pre>
``` ruby
puts 'Hello, Writebook!' # Print out "Hello, Writebook!"
```
## Horizontal rules
Use three asterisks (or dashes) in a row to make a horizontal rule.
```
***
```
***
## Advanced formatting
Writebook also supports `HTML` formatting in your pages. Tags like `<p>`, `<img>`, `<a>`, `<h1>`, `<h2>`, `<strong>`, `<em>`, `<center>`, `<details>`, `<table>`, `<video>`, and more are supported. You can also use `CSS` inside the inline `style` attribute like this tip for centering text uses.
### Center text
```
<p style="text-align: center">This is centered</p>
```
<p style="text-align: center">This is centered</p>
### Open a link in a new tab/window
Use an `HTML` `a` element with the `target` attribute set to `_blank` (the preceding underscore is important) like this:
```
<a href="https://books.37signals.com" target="_blank">This opens in a new tab/window</a>
```
<a href="https://books.37signals.com" target="_blank">This opens in a new tab/window</a>
***
For a complete reference, see the official <a href="https://daringfireball.net/projects/markdown/syntax" target="_blank">Markdown Syntax</a> page.

View File

@@ -0,0 +1,20 @@
---
title: Reading
---
# Reading
Clear typography that adapts to your device and screen size, a calm layout, and minimal distractions make reading a Writebook a pleasure.
Here are a few more things you should know.
## Full Screen
For a more immersive, focused reading experience hit the expand button at the top of the screen to enter Full Screen mode (on supported devices). Full Screen hides most of the clutter and busyness of your browser and operating system so you can focus on reading. _Hint: you can use Full Screen while writing, too!_
<img src="/u/fullscreen-IbQnfM.png" alt="Full Screen view" style="border: 1px solid var(--color-subtle)" />
## Moving between pages
As you reach the bottom of a page, you'll find a button with the title of the next page. Just hit it to continue. The back arrow button at the top of the screen moves back to the previous page.
On devices with a hardware keyboard attached you can also simply hit the arrow keys to move between pages. Just press `→` to turn to the next page and `←` to go back. When you reach the end of the book, Writebook will return you to the table of contents.

View File

@@ -0,0 +1,20 @@
---
title: Publishing on the web
---
# Publishing your book
Writebook can be used to publish private books just for your team, or public books available for everyone on the web.
## Private books
Private books are available to anyone who is signed in to your Writebook and has permission to read a book. See the section, [Users, Readers & Writers](/2/the-writebook-manual/29/users-readers-writers) for details.
## Publishing to the web
To make a book available to everyone on the internet, just flip the switch from locked to web. Your book will be instantly available at the URL displayed when the switch is on. There are tools below to display a QR code or copy the URL so you can share it in an email, text, or chat—or link to it on your home page.
![publishing.gif](/u/publishing-vP0uNP.gif)
## Public URLs
Your book's public URL consists of the domain you provided when you set up Writebook plus a _slug_ derived from the title of the book. For example, if your Writebook is at `books.37signals.com`, then the title _Getting Real_ will be published at `books.37signals.com/getting-real`. You can change this slug if you don't like the one Writebook provided.
### Redirecting
Visitors who visit your URL without any book slug (.e.g., `books.37signals.com`) will be redirected to your published book. If you have more than one book published to the web, they'll see a list of all public books on your Writebook that are published. If you don't have any published books, they'll be directed to sign in.

View File

@@ -0,0 +1,39 @@
---
title: The ONCE command
---
# ONCE command reference
Install and manage ONCE products.
To run the `once` command in a terminal connect to your server using with either `SSH` or a web-based cloud console.
## Usage:
`once` - [command]
## Manage passwords
`password` - manage passwords
## Manage automatic updates
`auto-update` - manage automatic updates
## Manage application data
`data` - manage application data
## Additional Commands:
`help` - Help about any command
`setup` - Re-run the initial setup of Writebook
`start` - Start Writebook
`status` - Show the current status
`stop` - Stop Writebook
`update` - Update Writebook to the latest version
## Flags:
`-h`, `--help` - help for once
Use `once [command] --help` for more information about a command.

View File

@@ -0,0 +1,18 @@
---
title: Need help?
---
# Help
Everyone gets stuck sometimes. Here's how to deal with some common situations.
## I need to sign in on another device
You can easily sign in on another device without even typing your password by sharing your personal link.
![session-transfer.png](/u/session-transfer-xa3uF7.png)
## Password recovery
Someone forgot their password and can't sign in. It happens. Administrators can access someone else's personal sign in link to help them get back in.
![password-recovery.png](/u/password-recovery-XKwPtX.png)

View File

@@ -0,0 +1,6 @@
---
class: Section
title: Appendix
theme: dark
---
Appendix

View File

@@ -0,0 +1,27 @@
---
title: Installing on Digital Ocean
---
# Installing on Digital Ocean
One of the best ways to host Writebook is to use a cloud provider like <a href="https://www.digitalocean.com" target="_blank">Digital Ocean</a>. It's inexpensive and relatively easy to set up if you have a little technical know-how.
**Once you've signed up for a Digital Ocean account**, just follow these steps to get set up. It should take less than 5 minutes.
1. Choose `Create > Droplets` from the menu in your default project and pick a plan to get the server set up. ![DO-create.png](/u/do-create-G0VYYI.png)
Minimum requirements are 2GB RAM/1CPU. We recommend the following setup: ![DO-plan.png](/u/do-plan-IZHiLO.png)
2. Next, create a password for connecting to the server. ![DO-password.png](/u/do-password-AVWxbD.png)
3. Accept the rest of the defaults and hit "Create Droplet" at the bottom of the screen. It will take just a few minutes for your droplet to be created. Once it's ready, click it to expand. ![DO-droplet.png](/u/do-droplet-JAJscl.png)
4. Next, copy the `ipv4` address which we'll use to point your domain name to your new cloud server. ![DO-ip.png](/u/do-ip-dc4gQX.png)
5. Now head over to wherever your domain is managed. Some common registrars are <a href="https://www.godaddy.com" target="_blank">GoDaddy</a>, <a href="https://www.namecheap.com" target="_blank">namecheap</a> or <a href="https://www.squarespace.com" target="_blank">Squarespace</a>. Sign in and look for a link to manage your domain. You need to add an `A record` that points to the IP you copied above. It'll look something like this: ![DO-a-record.png](/u/do-a-record-TBoVla.png)
6. Next, head back over to your Digital Ocean Droplet and open the Console to connect to your server. ![DO-console.png](/u/do-console-bswkQF.png)
7. Finally, find the install command in the confirmation email we sent you and paste it into the command line: ![do-cli.png](/u/do-cli-QqIe5C.png)
8. You'll be asked which domain name you will be using. That needs to be the same as the A record you set up in your domain manager. Type it in and ONCE will handle the rest. A few minutes later you'll see something like this: ![installation.png](/u/installation-qJ6Wol.png)
9. You're done! Open the URL in your web browser and set up your Writebook account.

View File

@@ -0,0 +1,25 @@
---
title: Installing on Hetzner
---
# Installing on Hetzner
One of the best ways to host Writebook is to use a cloud provider like <a href="https://www.hetzner.com" target="_blank">Hetzner</a>. It's inexpensive and relatively easy to set up if you have a little technical know-how.
**Once you've signed up for a Hetzner account**, just follow these steps to get set up. It should take less than 5 minutes.
1. Choose `+ Create Server` in your default project and pick a plan to get the server set up. ![hz-dash.png](/u/hz-dash-MUZN1e.png)
Minimum requirements are 2GB RAM/1CPU. We recommend the following setup: ![hz-plan.png](/u/hz-plan-57QAVM.png)
3. Accept the rest of the defaults and hit `Create and Buy now` at the bottom of the screen. It will take just a few minutes for your server to be created.
4. Once it's ready, copy the `Public IP` address which we'll use to point your domain name to your new cloud server. ![hz-ip.png](/u/hz-ip-6FsMg0.png)
5. Now head over to wherever your domain is managed. Some common registrars are <a href="https://www.godaddy.com" target="_blank">GoDaddy</a>, <a href="https://www.namecheap.com" target="_blank">namecheap</a> or <a href="https://www.squarespace.com" target="_blank">Squarespace</a>. Sign in and look for a link to manage your domain. You need to add an `A record` that points to the IP you copied above. It'll look something like this: ![DO-a-record.png](/u/do-a-record-TBoVla.png)
6. Next, head back over to Hetzner and open the Console to connect to your server. ![hz-console-menu.png](/u/hz-console-menu-yPBmdi.png)
7. Finally, find the install command in the confirmation email we sent you and paste it into the command line: ![do-cli.png](/u/do-cli-QqIe5C.png)
8. You'll be asked which domain name you will be using. That needs to be the same as the A record you set up in your domain manager. Type it in and ONCE will handle the rest. A few minutes later you'll see something like this: ![installation.png](/u/installation-qJ6Wol.png)
9. You're done! Open the URL in your web browser and set up your Writebook account.