initial site template

This commit is contained in:
Jason Gong
2021-12-13 16:30:56 -08:00
parent e54eb6a75d
commit 8822d41dc8
12 changed files with 462 additions and 25 deletions

View File

@@ -9,7 +9,7 @@ source "https://rubygems.org"
# Happy Jekylling!
gem "jekyll", "~> 4.2.1"
# This is the default theme for new Jekyll sites. You may change this to anything you like.
gem "minima", "~> 2.5"
gem "just-the-docs"
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`.
# gem "github-pages", group: :jekyll_plugins
@@ -27,3 +27,4 @@ end
# Performance-booster for watching directories on Windows
gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin]

View File

@@ -5,14 +5,14 @@ GEM
public_suffix (>= 2.0.2, < 5.0)
colorator (1.1.0)
concurrent-ruby (1.1.9)
em-websocket (0.5.2)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
http_parser.rb (~> 0)
eventmachine (1.2.7)
ffi (1.15.4)
forwardable-extended (2.6.0)
http_parser.rb (0.6.0)
i18n (1.8.10)
http_parser.rb (0.8.0)
i18n (1.8.11)
concurrent-ruby (~> 1.0)
jekyll (4.2.1)
addressable (~> 2.4)
@@ -37,6 +37,10 @@ GEM
jekyll (>= 3.8, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
just-the-docs (0.3.3)
jekyll (>= 3.8.5)
jekyll-seo-tag (~> 2.0)
rake (>= 12.3.1, < 13.1.0)
kramdown (2.3.1)
rexml
kramdown-parser-gfm (1.1.0)
@@ -46,13 +50,10 @@ GEM
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.4.0)
minima (2.5.1)
jekyll (>= 3.5, < 5.0)
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (4.0.6)
rake (13.0.6)
rb-fsevent (0.11.0)
rb-inotify (0.10.1)
ffi (~> 1.0)
@@ -66,15 +67,15 @@ GEM
unicode-display_width (1.8.0)
PLATFORMS
ruby
x86_64-darwin-21
DEPENDENCIES
jekyll (~> 4.2.1)
jekyll-feed (~> 0.12)
minima (~> 2.5)
just-the-docs
tzinfo (~> 1.2)
tzinfo-data
wdm (~> 0.1.1)
BUNDLED WITH
2.1.4
2.2.33

View File

@@ -8,7 +8,7 @@
# For technical reasons, this file is *NOT* reloaded automatically when you use
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
#
# If you need help with YAML syntax, here are some quick references for you:
# If you need help with YAML syntax, here are some quick references for you:
# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
# https://learnxinyminutes.com/docs/yaml/
#
@@ -18,20 +18,47 @@
# You can create any custom variable you would like, and they will be accessible
# in the templates via {{ site.myvariable }}.
title: Firezone Documentation
email: feedback-docs@firez.one
title: Docs | Firezone
email: support@firez.one
description: >- # this means to ignore newlines until "baseurl:"
Firezone Reference Documentation.
Open-source, WireGuard-based VPN server and firewall for Linux.
baseurl: "" # the subpath of your site, e.g. /blog
url: "https://docs.firez.one" # the base hostname & protocol for your site, e.g. http://example.com
Documentation site for Firezone's VPN and firewall server.
baseurl: "/docs" # the subpath of your site, e.g. /blog
url: "https://www.firez.one" # the base hostname & protocol for your site, e.g. http://example.com
permalink: pretty
twitter_username: firezonevpn
github_username: firezone
# Set a path/url to a logo that will be displayed instead of the title
logo: "/assets/images/firezone-logo-wordmark-dark.svg"
# Build settings
theme: minima
theme: just-the-docs
plugins:
- jekyll-feed
color_scheme: fz
# Footer content
# appears at the bottom of every page's main content
# footer_content: ""
# Footer last edited timestamp
last_edit_timestamp: true # show or hide edit time - page must have `last_modified_date` defined in the frontmatter
last_edit_time_format: "%b %e %Y at %I:%M %p" # uses ruby's time format: https://ruby-doc.org/stdlib-2.7.0/libdoc/time/rdoc/Time.html
# Footer "Edit this page on GitHub" link text
gh_edit_link: true # show or hide edit this page link
gh_edit_link_text: "Edit on GitHub"
gh_edit_repository: "https://github.com/firezone/firezone" # the github URL for your repo
gh_edit_branch: "master" # the branch that your docs is served from
# gh_edit_source: docs # the source that your files originate from
gh_edit_view_mode: "tree" # "tree" or "edit" if you want the user to jump into the editor immediately
# Aux links for the upper right navigation
aux_links:
"Schedule a Demo":
- "https://e04kusl9oz5.typeform.com/to/BkWP2ys1"
# Exclude from processing.
# The following items will not be processed, by default.

View File

@@ -0,0 +1,5 @@
{%- if site.footer_content -%}
<div class="text-small mb-0">
<a href="/">Company</a> | <a href="https://github.com/firezone/firezone">Github</a> | <a href="https://twitter.com/firezonevpn">Twitter</a>
</div>
{%- endif -%}

199
docs/_layouts/default.html Normal file
View File

@@ -0,0 +1,199 @@
---
layout: table_wrappers
---
<!DOCTYPE html>
<html lang="{{ site.lang | default: 'en-US' }}">
{% include head.html %}
<body>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-link" viewBox="0 0 24 24">
<title>Link</title>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link">
<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path>
</svg>
</symbol>
<symbol id="svg-search" viewBox="0 0 24 24">
<title>Search</title>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search">
<circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line>
</svg>
</symbol>
<symbol id="svg-menu" viewBox="0 0 24 24">
<title>Menu</title>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu">
<line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line>
</svg>
</symbol>
<symbol id="svg-arrow-right" viewBox="0 0 24 24">
<title>Expand</title>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right">
<polyline points="9 18 15 12 9 6"></polyline>
</svg>
</symbol>
<symbol id="svg-doc" viewBox="0 0 24 24">
<title>Document</title>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file">
<path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><polyline points="13 2 13 9 20 9"></polyline>
</svg>
</symbol>
</svg>
<div class="side-bar">
<div class="site-header">
<a href="{{ '/' | absolute_url }}" class="site-title lh-tight">{% include title.html %}</a>
<a href="#" id="menu-button" class="site-button">
<svg viewBox="0 0 24 24" class="icon"><use xlink:href="#svg-menu"></use></svg>
</a>
</div>
<nav role="navigation" aria-label="Main" id="site-nav" class="site-nav">
{% if site.just_the_docs.collections %}
{% assign collections_size = site.just_the_docs.collections | size %}
{% for collection_entry in site.just_the_docs.collections %}
{% assign collection_key = collection_entry[0] %}
{% assign collection_value = collection_entry[1] %}
{% assign collection = site[collection_key] %}
{% if collection_value.nav_exclude != true %}
{% if collections_size > 1 %}
<div class="nav-category">{{ collection_value.name }}</div>
{% endif %}
{% include nav.html pages=collection %}
{% endif %}
{% endfor %}
{% else %}
{% include nav.html pages=site.html_pages %}
{% endif %}
</nav>
</div>
<div class="main" id="top">
<div id="main-header" class="main-header">
{% if site.search_enabled != false %}
<div class="search">
<div class="search-input-wrap">
<input type="text" id="search-input" class="search-input" tabindex="0" placeholder="Search {{ site.title }}" aria-label="Search {{ site.title }}" autocomplete="off">
<label for="search-input" class="search-label"><svg viewBox="0 0 24 24" class="search-icon"><use xlink:href="#svg-search"></use></svg></label>
</div>
<div id="search-results" class="search-results"></div>
</div>
{% endif %}
{% include header_custom.html %}
{% if site.aux_links %}
<nav aria-label="Auxiliary" class="aux-nav">
<ul class="aux-nav-list">
{% for link in site.aux_links %}
<li class="aux-nav-list-item">
<a href="{{ link.last }}" class="site-button"
{% if site.aux_links_new_tab %}
target="_blank" rel="noopener noreferrer"
{% endif %}
>
{{ link.first }}
</a>
</li>
{% endfor %}
</ul>
</nav>
{% endif %}
</div>
<div id="main-content-wrap" class="main-content-wrap">
{% unless page.url == "/" %}
{% if page.parent %}
{%- for node in pages_list -%}
{%- if node.parent == nil -%}
{%- if page.parent == node.title or page.grand_parent == node.title -%}
{%- assign first_level_url = node.url | absolute_url -%}
{%- endif -%}
{%- if node.has_children -%}
{%- assign children_list = pages_list | where: "parent", node.title -%}
{%- for child in children_list -%}
{%- if page.url == child.url or page.parent == child.title -%}
{%- assign second_level_url = child.url | absolute_url -%}
{%- endif -%}
{%- endfor -%}
{%- endif -%}
{%- endif -%}
{%- endfor -%}
<nav aria-label="Breadcrumb" class="breadcrumb-nav">
<ol class="breadcrumb-nav-list">
{% if page.grand_parent %}
<li class="breadcrumb-nav-list-item"><a href="{{ first_level_url }}">{{ page.grand_parent }}</a></li>
<li class="breadcrumb-nav-list-item"><a href="{{ second_level_url }}">{{ page.parent }}</a></li>
{% else %}
<li class="breadcrumb-nav-list-item"><a href="{{ first_level_url }}">{{ page.parent }}</a></li>
{% endif %}
<li class="breadcrumb-nav-list-item"><span>{{ page.title }}</span></li>
</ol>
</nav>
{% endif %}
{% endunless %}
<div id="main-content" class="main-content" role="main">
{% if site.heading_anchors != false %}
{% include vendor/anchor_headings.html html=content beforeHeading="true" anchorBody="<svg viewBox=\"0 0 16 16\" aria-hidden=\"true\"><use xlink:href=\"#svg-link\"></use></svg>" anchorClass="anchor-heading" anchorAttrs="aria-labelledby=\"%html_id%\"" %}
{% else %}
{{ content }}
{% endif %}
{% if page.has_children == true and page.has_toc != false %}
<hr>
<h2 class="text-delta">Table of contents</h2>
<ul>
{%- assign children_list = pages_list | where: "parent", page.title | where: "grand_parent", page.parent -%}
{% for child in children_list %}
<li>
<a href="{{ child.url | absolute_url }}">{{ child.title }}</a>{% if child.summary %} - {{ child.summary }}{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}
{% capture footer_custom %}
{%- include footer_custom.html -%}
{% endcapture %}
{% if footer_custom != "" or site.last_edit_timestamp or site.gh_edit_link %}
<hr>
<footer>
{% if site.back_to_top %}
<p><a href="#top" id="back-to-top">{{ site.back_to_top_text }}</a></p>
{% endif %}
{{ footer_custom }}
{% if site.last_edit_timestamp or site.gh_edit_link %}
<div class="d-flex mt-2">
{% if site.last_edit_timestamp and site.last_edit_time_format and page.last_modified_date %}
<p class="text-small text-grey-dk-000 mb-0 mr-2">
Page last modified: <span class="d-inline-block">{{ page.last_modified_date | date: site.last_edit_time_format }}</span>.
</p>
{% endif %}
{% if
site.gh_edit_link and
site.gh_edit_link_text and
site.gh_edit_repository and
site.gh_edit_branch and
site.gh_edit_view_mode
%}
<p class="text-small text-grey-dk-000 mb-0">
<a href="{{ site.gh_edit_repository }}/{{ site.gh_edit_view_mode }}/{{ site.gh_edit_branch }}{% if site.gh_edit_source %}/{{ site.gh_edit_source }}{% endif %}/{{ page.path }}" id="edit-this-page">{{ site.gh_edit_link_text }}</a>
</p>
{% endif %}
</div>
{% endif %}
</footer>
{% endif %}
</div>
</div>
{% if site.search_enabled != false %}
{% if site.search.button %}
<a href="#" id="search-button" class="search-button">
<svg viewBox="0 0 24 24" class="icon"><use xlink:href="#svg-search"></use></svg>
</a>
{% endif %}
<div class="search-overlay"></div>
{% endif %}
</div>
</body>
</html>

View File

@@ -0,0 +1,29 @@
---
layout: post
title: "Welcome to Jekyll!"
date: 2021-12-08 10:08:59 -0800
categories: jekyll update
---
Youll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated.
Jekyll requires blog post files to be named according to the following format:
`YEAR-MONTH-DAY-title.MARKUP`
Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit numbers, and `MARKUP` is the file extension representing the format used in the file. After that, include the necessary front matter. Take a look at the source for this post to get an idea about how it works.
Jekyll also offers powerful support for code snippets:
{% highlight ruby %}
def print_hi(name)
puts "Hi, #{name}"
end
print_hi('Tom')
#=> prints 'Hi, Tom' to STDOUT.
{% endhighlight %}
Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekylls GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk].
[jekyll-docs]: https://jekyllrb.com/docs/home
[jekyll-gh]: https://github.com/jekyll/jekyll
[jekyll-talk]: https://talk.jekyllrb.com/

View File

@@ -0,0 +1,34 @@
// Colors
$fz-grey-dk-000: #90867f;
$fz-grey-dk-100: #766a60;
$fz-grey-dk-200: #4c3e33;
$fz-grey-dk-300: #1b140e;
$fz-grey-lt-000: #fcfcfc;
$fz-grey-lt-100: #f8f7f7;
$fz-grey-lt-200: #ebebea;
$fz-grey-lt-300: #dfdedd;
$fz-purple-000: #4805ff;
$fz-purple-100: #3400c2;
$fz-purple-200: #37007f;
$fz-purple-300: #28005c;
$fz-orange: #FF7300;
$link-color: $fz-purple-000;
$btn-primary-color: $fz-purple-100;
// Fonts
$body-font-family: "Open Sans", sans-serif;
@font-face {
font-family: "Open Sans";
src: url("../assets/fonts/OpenSans-Italic-VariableFont_wdth,wght.ttf");
}
// Borders
$border-color: $fz-grey-lt-100;

View File

@@ -0,0 +1,6 @@
<svg width="400" height="110" viewBox="0 0 400 110" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M78.2377 14C98.1003 30.5361 77.5377 67.1849 84.794 81.9826C69.8827 60.5955 90.1987 42.2158 78.2377 14Z" fill="#EF7A30"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M89.2521 45.8288C102.235 54.2609 86.6506 74.0179 94.9473 79.0751C103.349 84.1971 102.399 62.9106 114 68.3713C101.921 64.2634 106.932 89.6066 91.9644 86.2339C74.836 82.3743 96.1375 55.1419 89.2521 45.8288Z" fill="#7F3900"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M14 74.7008C38.7272 55.0085 72.4085 86.6091 88.3027 88.5837C108.743 91.1227 103.298 67.4998 113.529 68.3799C104.102 69.5163 109.761 94.2219 88.6838 94.9854C65.7304 95.8169 42.83 60.8369 14 74.7008H14Z" fill="#331700"/>
<path d="M124.96 84H140.38V77.88H136.78V59.46H148.24V77.88H144.64V84H160V77.88H154.48V53.34H136.78V50.88C136.78 48.24 139.12 47.28 141.88 47.28C144.22 47.28 146.41 47.46 148.24 47.67C148.99 48.54 150.07 49.08 151.3 49.08C153.64 49.08 155.44 47.22 155.44 44.94C155.44 42.66 153.64 40.86 151.3 40.86C149.92 40.86 148.72 41.52 147.97 42.54C145.45 41.82 143.35 41.28 140.38 41.28C135.7 41.28 130.54 42.72 130.54 49.56V53.34H124.96V59.46H130.54V77.88H124.96V84ZM158.033 84H179.993V77.94H171.413V68.04C171.413 62.46 174.353 58.98 181.913 58.98V65.58H188.633V54.24C187.073 53.4 184.673 52.62 181.613 52.62C176.513 52.62 172.463 54.99 170.933 58.26V53.34H158.033V59.4H164.513V77.94H158.033V84ZM205.085 84.72C209.825 84.72 213.485 82.8 216.065 79.98L211.925 75.6C210.005 77.7 207.845 78.6 205.145 78.6C200.885 78.6 198.125 75.81 197.345 71.34H218.165C218.405 69.78 218.405 68.22 218.405 67.14C218.405 57.18 212.465 52.62 205.085 52.62C196.145 52.62 190.445 58.68 190.445 68.64C190.445 78.36 195.965 84.72 205.085 84.72ZM205.085 58.68C208.265 58.68 211.205 60.72 211.625 65.46H197.345C198.065 61.2 200.465 58.68 205.085 58.68ZM222.798 84H247.938V77.82H231.618L247.998 58.44V53.34H223.938V59.52H239.178L222.798 78.78V84ZM266.371 84.72C275.491 84.72 281.071 78.54 281.071 68.7C281.071 58.86 275.491 52.62 266.371 52.62C257.311 52.62 251.671 58.92 251.671 68.7C251.671 78.6 257.311 84.72 266.371 84.72ZM266.371 78.12C261.391 78.12 258.631 74.4 258.631 68.7C258.631 62.94 261.391 59.16 266.371 59.16C271.471 59.16 274.111 63 274.111 68.7C274.111 74.4 271.411 78.12 266.371 78.12ZM283.903 84H290.803V66.6C290.803 60.9 293.923 59.16 297.583 59.16C301.063 59.16 303.943 61.08 303.943 66.72V84H310.843V65.28C310.843 55.86 305.623 52.62 299.503 52.62C295.633 52.62 292.333 54.33 290.803 56.28V53.34H283.903V84ZM328.976 84.72C333.716 84.72 337.376 82.8 339.956 79.98L335.816 75.6C333.896 77.7 331.736 78.6 329.036 78.6C324.776 78.6 322.016 75.81 321.236 71.34H342.056C342.296 69.78 342.296 68.22 342.296 67.14C342.296 57.18 336.356 52.62 328.976 52.62C320.036 52.62 314.336 58.68 314.336 68.64C314.336 78.36 319.856 84.72 328.976 84.72ZM328.976 58.68C332.156 58.68 335.096 60.72 335.516 65.46H321.236C321.956 61.2 324.356 58.68 328.976 58.68Z" fill="#331700"/>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -0,0 +1,139 @@
---
layout: default
title: Deploying and Configuring
nav_order: 1
---
# Deploying and Configuring
{: .no_toc }
## Table of contents
{: .no_toc .text-delta }
1. TOC
{:toc}
---
Firezone consists of a single distributable Linux package that you install and
manage yourself. Management of the Firezone installation is handled by the
`firezone-ctl` utility while management of the VPN and firewall themselves are
handled by the Web UI.
Firezone acts as a frontend to both the WireGuard kernel module and
[netfilter](https://netfilter.org) kernel subsystem. It creates a WireGuard
interface (by default called `wg-firezone`) and
`firezone` netfilter table and adds appropriate routes to the routing
table. Other programs that modify the Linux routing table or netfilter firewall
may interfere with Firezone's operation.
### SSL
Firezone requires a valid SSL certificate and a matching DNS record to run in
production. We recommend using [Let's Encrypt](https://letsencrypt.org) to
generate a free SSL cert for your domain.
### Security Considerations
Firezone is **beta** software. We highly recommend **limiting network access to
the Web UI** (by default port tcp/443) to prevent exposing it to the public Internet.
The WireGuard listen port (by default port udp/51821) should be exposed to allow user
devices to connect.
## Supported Linux Distributions
Firezone currently supports the following distributions and architectures:
| Name | Architectures | Status | Notes |
| --- | --- | --- | --- |
| AmazonLinux 2 | `amd64` | **Fully-supported** | See [AmazonLinux 2 Notes](#amazonlinux-2-notes) |
| CentOS 7 | `amd64` | **Fully-supported** | See [CentOS 7 Notes](#centos-7-notes) |
| CentOS 8 | `amd64` | **Fully-supported** | Works as-is |
| Debian 10 | `amd64` | **Fully-supported** | See [Debian 10 Notes](#debian-10-notes)|
| Debian 11 | `amd64` | **Fully-supported** | Works as-is |
| Fedora 33 | `amd64` | **Fully-supported** | Works as-is |
| Fedora 34 | `amd64` | **Fully-supported** | Works as-is |
| Ubuntu 18.04 | `amd64` | **Fully-supported** | See [Ubuntu 18.04 Notes](#ubuntu-1804-notes) |
| Ubuntu 20.04 | `amd64` | **Fully-supported** | Works as-is |
| openSUSE Leap 15.3 | `amd64` | **Fully-supported** | See [openSUSE Notes](#opensuse-notes) |
If your distro isn't listed here please
[open an issue](https://github.com/firezone/firezone/issues/new/choose) and let
us know. New distros are being supported on a regular basis and there's a good
chance yours will be added soon.
### AmazonLinux 2 Notes
Kernel upgrade required:
```bash
sudo amazon-linux-extras install -y kernel-5.10
```
### CentOS 7 Notes
Kernel upgrade to 4.19+ required. See [this guide
](https://medium.com/@nazishalam07/update-centos-kernel-3-10-to-5-13-latest-9462b4f1e62c)
for an example.
### Ubuntu 18.04 Notes
Kernel upgrade to 4.19+ required. E.g. `apt install linux-image-generic-hwe-18.04`
### Debian 10 Notes
Kernel upgrade to 4.19+ required. See [this guide
](https://jensd.be/968/linux/install-a-newer-kernel-in-debian-10-buster-stable)
for an example.
### openSUSE Notes
Firezone requires the `setcap` utility, but some recent openSUSE releases may
not have it installed by default. To fix, ensure `libcap-progs` is installed:
```bash
sudo zypper install libcap-progs
```
## Installation Instructions
Assuming you're running Linux kernel 4.19+ on one of the supported distros
listed above, follow these steps to setup and install Firezone:
1. [Install WireGuard](https://www.wireguard.com/install/) for your distro. If using Linux kernel 5.6 or higher, skip
this step.
2. Download the relevant package for your distribution from the
[releases page](https://github.com/firezone/firezone/releases).
3. Install with `sudo rpm -i firezone*.rpm` or `sudo dpkg -i firezone*.deb`
depending on your distro.
4. Bootstrap the application with `sudo firezone-ctl reconfigure`. This will initialize config files, set up needed services and generate the default configuration.
5. Edit the default configuration located at `/etc/firezone/firezone.rb`.
At a minimum, you'll need to review the following configuration variables:
```ruby
# Auto-generated based on the server's hostname.
# Set this to the FQDN used to access the Web UI.
default['firezone']['fqdn'] = 'firezone.example.com'
# ...
# Specify the path to your SSL cert and private key.
# If set to nil, a self-signed cert will be generated for you.
default['firezone']['ssl']['certificate'] = '/path/to/cert.pem'
default['firezone']['ssl']['certificate_key'] = '/path/to/key.pem'
```
6. Reconfigure the application to pick up the new changes: `sudo firezone-ctl reconfigure`.
7. Finally, create an admin user with `sudo firezone-ctl create-or-reset-admin`.
The login credentials will be printed to the console output.
8. Now you should be able to log into the web UI at the FQDN you specified in
step 5 above, e.g. `https://firezone.example.com`
## Configuration File
User-configurable settings can be found in `/etc/firezone/firezone.rb`.
Changing this file **requires re-running** `sudo firezone-ctl reconfigure` to pick up
the changes and apply them to the running system.

BIN
docs/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 726 B

View File

@@ -3,8 +3,4 @@
# To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
layout: home
---
Firezone Documentation
WIP
---