aiming to use firmer standards or options for custom extension where desired.
If looking to build a custom integration for your instance, our [REST API](/docs/admin/hacking-bookstack/#bookstack-api) is a good place to start,
-with [our api-scripts repository](https://github.com/BookStackApp/api-scripts) holding a range of
+with [our api-scripts repository](https://codeberg.org/bookstack/api-scripts) holding a range of
examples in various languages.
### Can we pay for the implementation of specific features?
- [On Mastodon](https://fosstodon.org/@bookstack)
- [Our Discord](https://discord.gg/ztkBqR2)
+- [The Codeberg org](https://codeberg.org/bookstack)
- [The Github Project](https://github.com/BookStackApp/BookStack)
- [Our Subreddit](https://www.reddit.com/r/bookstack)
We don't have an automated way to migrate your content directly from Teams to BookStack.
We do have a growing [REST API](/docs/admin/hacking-bookstack/#bookstack-api) that can be used to automate some of the process where possible.
-We also have a collection of [API usage examples in various languages](https://github.com/BookStackApp/api-scripts) to help jumpstart your own tooling where needed.
+We also have a collection of [API usage examples in various languages](https://codeberg.org/bookstack/api-scripts) to help jumpstart your own tooling where needed.
### Other Updates
-As you may have noticed, The BookStack blog, website and docs have recently been updated and are now all stored in the single [BookStackApp/website](https://github.com/BookStackApp/website) repository and it's now generated using the [Hugo](https://gohugo.io/) static site generator. Additionally search has been added to the docs courtesy of [Algolia Docsearch](https://community.algolia.com/docsearch/).
+As you may have noticed, The BookStack blog, website and docs have recently been updated and are now all stored in the single [BookStackApp/website](https://codeberg.org/bookstack/website) repository and it's now generated using the [Hugo](https://gohugo.io/) static site generator. Additionally search has been added to the docs courtesy of [Algolia Docsearch](https://community.algolia.com/docsearch/).
----
but had not been supported in a while and required the PHP Tidy extension which could be tricky to locate and
install on some systems.
-In v0.31 we've now switched to [ssddanbrown/htmldiff](https://github.com/ssddanbrown/htmldiff/) which I ported
+In v0.31 we've now switched to [ssddanbrown/htmldiff](https://codeberg.org/danb/HtmlDiff) which I ported
from a [c# implementation found here](https://github.com/Rohland/htmldiff.net) which is a port of a [ruby implementation found here](https://github.com/myobie/htmldiff). Major credit to [@Rohland](https://github.com/Rohland) and [@myobie](https://github.com/myobie) for their original work which I
have simply ported.

-Now the core content parts are in place, I'm open to GitHub issues being created to request
+Now the core content parts are in place, I'm open to issues being created to request
specific features or endpoints so further actions can be performed.
-To support usage of the API, I've setup a new BookStack api-scripts repository on GitHub:
-https://github.com/BookStackApp/api-scripts. This will be a collection of useful scripts I,
+To support usage of the API, I've setup a new BookStack api-scripts repository:
+https://codeberg.org/bookstack/api-scripts. This will be a collection of useful scripts I,
or others, create as examples or for specific tasks. These can be used directly, or as a base/guide to
create other scripts.
Unfortunately though many of these lacked an auto-RSS-send feature and/or appeared too complex
for the focused use-case I had in mind so, with some extra Christmas holiday time, I put together
-my own app which I've called [MailBag](https://github.com/ssddanbrown/mailbag).
+my own app which I've called [MailBag](https://codeberg.org/danb/mailbag).

-This is a purposefully very simple app and has lots of limitations, as listed in the [readme](https://github.com/ssddanbrown/mailbag#mailbag),
+This is a purposefully very simple app and has lots of limitations, as listed in the [readme](https://codeberg.org/danb/mailbag#mailbag),
but it does what I need it to while providing me an opportunity to work on something
fresh for a change to sharpen some development skills.
There is no open/click tracking support; No HTML email support.
Not so much a service as an open source project, but [Hugo](https://gohugo.io/) plays a big
part for our website and this blog. Hugo is a static-site generator that allows
us to generate a performant, easy-to-host, static HTML site for our docs, blog
-and homepage from content [we can manage via GitHub](https://github.com/BookStackApp/website).
+and homepage from content [we can manage via GitHub](https://codeberg.org/bookstack/website).
Hugo has remained great for our usage and has remained super fast even as
the site and blog have grown. I've sometimes had trouble wrangling with the
It's quite a simple system, focusing on plaintext email content,
but it's designed to privacy respecting and fast to use. [I provide it under the
-MIT license via GitHub](https://github.com/ssddanbrown/mailbag).
+MIT license via GitHub](https://codeberg.org/danb/mailbag).
### Discord
I have to stress, these hacks are unsupported and are not assured to be updated or work
with future BookStack versions. There are usually reasons these are not implemented as core features already, and I cannot afford to widen the scope of the support already provided for the core platform/code.
-While part of the site, hacks are managed via [a separate repo here](https://github.com/BookStackApp/hacks). Contributions are welcome but the scope of those is relatively strict to keep maintenance reasonable so please read the readme first.
+While part of the site, hacks are managed via [a separate repo here](https://codeberg.org/bookstack/hacks). Contributions are welcome but the scope of those is relatively strict to keep maintenance reasonable so please read the readme first.
This new area may evolve over time. I've set this up to potentially work with
code-driven systems in the future, with the idea of being able to easily add
While assisting a user on Discord, with using PowerShell to call the BookStack API, I ended up
creating a new REST API example script in the repo:
-[PowerShell - Create BookStack Pages from HTML Files](https://github.com/BookStackApp/api-scripts/tree/main/powershell-files-to-pages)
+[PowerShell - Create BookStack Pages from HTML Files](https://codeberg.org/bookstack/api-scripts/src/branch/main/powershell-files-to-pages)
I don't really know PowerShell, and I've never gotten on with Microsoft's documentation, but this was my first case
of finding ChatGPT very useful to at least provide tailored examples to work from until I got something working.
- Fetch/export directly from the database.
The REST API presents a nice scriptable, primarily JSON-based, interface. Various example scripts
-can be found in [our api-scripts repo](https://github.com/BookStackApp/api-scripts).
+can be found in [our api-scripts repo](https://codeberg.org/bookstack/api-scripts).
The API covers all core content types, including their RAW underlying data.
The API does provided access to export formats, but most of these may perform some transformation
or be lossy in operation. The one exception may be the (contained) HTML export option since
**Reference Links**
- [API documentation of our demo instance](https://demo.bookstackapp.com/api/docs).
-- [Our "BookStack API Scripts" repo containing examples](https://github.com/BookStackApp/api-scripts).
+- [Our "BookStack API Scripts" repo containing examples](https://codeberg.org/bookstack/api-scripts).
---
#### Webserver Configuration
-- [Example Apache VirtualHost configuration](https://github.com/BookStackApp/devops/blob/main/config/apache/bookstack.conf)
-- [Example Nginx Server block](https://github.com/BookStackApp/devops/blob/main/config/nginx)
+- [Example Apache VirtualHost configuration](https://codeberg.org/bookstack/devops/src/branch/main/config/apache/bookstack.conf)
+- [Example Nginx Server block](https://codeberg.org/bookstack/devops/src/branch/main/config/nginx)
---
A script to install BookStack on a fresh instance of Ubuntu 24.04 is available. This script is ONLY FOR A FRESH OS, it will install Apache, MySQL 8.0 & PHP 8.3 and could OVERWRITE any existing web setup on the machine. It also does not set up mail settings or configure system security so you will have to do those separately. You can use the script as a reference if you're installing on a non-fresh machine.
-- [Link to installation script](https://github.com/BookStackApp/devops/blob/main/scripts/installation-ubuntu-24.04.sh)
+- [Link to installation script](https://codeberg.org/bookstack/devops/src/branch/main/scripts/installation-ubuntu-24.04.sh)
#### Running the Script
# Ensure you have read the above information about what this script does before executing these commands.
# Download the script
-wget https://raw.githubusercontent.com/BookStackApp/devops/main/scripts/installation-ubuntu-24.04.sh
+wget https://codeberg.org/bookstack/devops/raw/branch/main/scripts/installation-ubuntu-24.04.sh
# Make it executable
chmod a+x installation-ubuntu-24.04.sh
A script to install BookStack on a fresh instance of Ubuntu 22.04 is available. This script is ONLY FOR A FRESH OS, it will install Apache, MySQL 8.0 & PHP 8.1 and could OVERWRITE any existing web setup on the machine. It also does not set up mail settings or configure system security so you will have to do those separately. You can use the script as a reference if you're installing on a non-fresh machine.
-- [Link to installation script](https://github.com/BookStackApp/devops/blob/main/scripts/installation-ubuntu-22.04.sh)
+- [Link to installation script](https://codeberg.org/bookstack/devops/src/branch/main/scripts/installation-ubuntu-22.04.sh)
- [Video guide](https://foss.video/w/emk5bMzhRdk4qzDoq3R6xe)
#### Running the Script
# Ensure you have read the above information about what this script does before executing these commands.
# Download the script
-wget https://raw.githubusercontent.com/BookStackApp/devops/main/scripts/installation-ubuntu-22.04.sh
+wget https://codeberg.org/bookstack/devops/raw/branch/main/scripts/installation-ubuntu-22.04.sh
# Make it executable
chmod a+x installation-ubuntu-22.04.sh
A script to install BookStack on a fresh instance of Ubuntu 20.04 is available. This script is ONLY FOR A FRESH OS, it will install Apache, MySQL 8.0 & PHP 8.2 and could OVERWRITE any existing web setup on the machine. It also does not set up mail settings or configure system security so you will have to do those separately. You can use the script as a reference if you're installing on a non-fresh machine.
-- [Link to installation script](https://github.com/BookStackApp/devops/blob/main/scripts/installation-ubuntu-20.04.sh)
+- [Link to installation script](https://codeberg.org/bookstack/devops/src/branch/main/scripts/installation-ubuntu-20.04.sh)
- [Video guide](https://foss.video/w/59udkzBf8ftVPWutkBcuyM)
#### Running the Script
# Ensure you have read the above information about what this script does before executing these commands.
# Download the script
-wget https://raw.githubusercontent.com/BookStackApp/devops/main/scripts/installation-ubuntu-20.04.sh
+wget https://codeberg.org/bookstack/devops/raw/branch/main/scripts/installation-ubuntu-20.04.sh
# Make it executable
chmod a+x installation-ubuntu-20.04.sh
A script to install BookStack on a fresh instance of Ubuntu 18.04 is available. This script is ONLY FOR A FRESH OS, it will install Apache, MySQL 5.7 & PHP 8.2 and could OVERWRITE any existing web setup on the machine. It also does not set up mail settings or configure system security so you will have to do those separately. You can use the script as a reference if you're installing on a non-fresh machine.
-[Link to installation script](https://github.com/BookStackApp/devops/blob/main/scripts/installation-ubuntu-18.04.sh)
+[Link to installation script](https://codeberg.org/bookstack/devops/src/branch/main/scripts/installation-ubuntu-18.04.sh)
#### Running the Script
# Ensure you have read the above information about what this script does before executing these commands.
# Download the script
-wget https://raw.githubusercontent.com/BookStackApp/devops/main/scripts/installation-ubuntu-18.04.sh
+wget https://codeberg.org/bookstack/devops/raw/branch/main/scripts/installation-ubuntu-18.04.sh
# Make it executable
chmod a+x installation-ubuntu-18.04.sh
Tweak the `/bookstack/` part to match the path you want to serve BookStack on. The slashes used within both the `location` and `proxy_pass` lines are important to functionality.
This block will tell Nginx to handle requests to `/bookstack/` by proxying them to our previously created BookStack `server {` block.
-A full [example of this configuration can be seen here](https://github.com/BookStackApp/devops/blob/main/config/nginx/subpath-proxy-config).
+A full [example of this configuration can be seen here](https://codeberg.org/bookstack/devops/src/branch/main/config/nginx/subpath-proxy-config).
Once done save your config files. You can often test your Nginx config is valid by running `sudo nginx -t`. If valid restart Nginx. On Ubuntu this can be done with the following command:
-Subproject commit 2d25a8b4f7e9423dfae49e6cc720fb17f1c6af11
+Subproject commit be89a91945590cf9ea4ef6001daffbf9dc3ea2a6
### Hacks
The website also contains a repository of customization hacks which can be found at [the /hacks](https://www.bookstackapp.com/hacks/) part of the site.
-These are managed via a [separate "Hacks" repo](https://github.com/BookStackApp/hacks) which is part of this repository as a git submodule. A symlink is then used to point the `content/hacks` directory to the `hacks/content` directory, where `hacks` is the submodule location.
+These are managed via a [separate "Hacks" repo](https://codeberg.org/bookstack/hacks) which is part of this repository as a git submodule. A symlink is then used to point the `content/hacks` directory to the `hacks/content` directory, where `hacks` is the submodule location.
### Theme
<p>
Sorry, we couldn't find a page at the current URL path. <br>
If you got here from a link on this site, feel free to
- <a href="https://github.com/bookstackapp/website">raise an issue</a>
+ <a href="https://codeberg.org/bookstack/website">raise an issue</a>
on GitHub. <br>
Otherwise you may be able to find what you need at one of these
handy links:
<div class="text-center">
<a class="edit-link" target="_blank"
- href="https://github.com/BookStackApp/website/blob/main/content/{{ .File.Path }}">
+ href="https://codeberg.org/bookstack/website/src/branch/main/content/{{ .File.Path }}">
<span class="icon small">{{partial "icon/edit.svg"}}</span>
Edit this Page
</a>
<div class="margins-vertical large text-left">
<a href="/hacks/applying/" target="_blank">Applying Hacks</a>
<span class="inline block margins-horizontal muted">|</span>
- <a href="https://github.com/BookStackApp/hacks" target="_blank">Hacks Source Repo</a>
+ <a href="https://codeberg.org/bookstack/hacks" target="_blank">Hacks Source Repo</a>
</div>
{{ $paginator := .Paginate (where .Pages "Params.Author" "!=" nil) }}
<ul>
<li><a href="/hacks">All Hacks</a></li>
<li><a href="/hacks/applying/">Applying Hacks</a></li>
- <li><a href="https://github.com/BookStackApp/hacks">Hacks Source Repo</a></li>
+ <li><a href="https://codeberg.org/bookstack/hacks">Hacks Source Repo</a></li>
</ul>
</div>
<div>
<h4>Other Hacking</h4>
<ul>
<li><a href="/docs/admin/hacking-bookstack/">All Hacking Methods</a></li>
- <li><a href="https://github.com/BookStackApp/api-scripts">Example API Scripts</a></li>
+ <li><a href="https://codeberg.org/bookstack/api-scripts">Example API Scripts</a></li>
</ul>
</div>
<div class="sidebar-inner mobile">
<ul>
<li><a href="/hacks">All Hacks</a></li>
<li><a href="/hacks/applying/">Applying Hacks</a></li>
- <li><a href="https://github.com/BookStackApp/hacks">Hacks Source Repo</a></li>
+ <li><a href="https://codeberg.org/bookstack/hacks">Hacks Source Repo</a></li>
</ul>
</div>
</aside>
<div class="col-lg-4">
<p>
BookStack - Created By <a href="https://danb.me" title="danb.me" target="_blank" rel="noopener">Dan Brown</a> and developed with the <a href="https://github.com/BookStackApp/BookStack/graphs/contributors" target="_blank" rel="noopener">community</a>.
- Page generated with <a href="https://gohugo.io">hugo</a>, Site source can be found <a href="https://github.com/BookStackApp/website" rel="noopener" target="_blank">here on GitHub</a>.
+ Page generated with <a href="https://gohugo.io">hugo</a>, Site source can be found <a href="https://codeberg.org/bookstack/website" rel="noopener" target="_blank">here on Codeberg</a>.
<br><br>
This website uses a self-hosted instance of <a href="https://plausible.io/" target="_blank" rel="noreferrer">Plausible</a> for analytics.
Our site stats can <a href="https://analytics.bookstackapp.com/bookstackapp.com" target="_blank" rel="noreferrer">be viewed here</a>.