mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 18:18:55 +00:00
initial site template
This commit is contained in:
@@ -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]
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
5
docs/_includes/footer_custom.html
Normal file
5
docs/_includes/footer_custom.html
Normal 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
199
docs/_layouts/default.html
Normal 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>
|
||||
29
docs/_posts/2021-12-08-welcome-to-jekyll.markdown
Normal file
29
docs/_posts/2021-12-08-welcome-to-jekyll.markdown
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
layout: post
|
||||
title: "Welcome to Jekyll!"
|
||||
date: 2021-12-08 10:08:59 -0800
|
||||
categories: jekyll update
|
||||
---
|
||||
You’ll 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 [Jekyll’s 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/
|
||||
34
docs/_sass/color_schemes/fz.scss
Normal file
34
docs/_sass/color_schemes/fz.scss
Normal 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;
|
||||
BIN
docs/assets/fonts/OpenSans-Italic-VariableFont_wdth,wght.ttf
Normal file
BIN
docs/assets/fonts/OpenSans-Italic-VariableFont_wdth,wght.ttf
Normal file
Binary file not shown.
6
docs/assets/images/firezone-logo-wordmark-dark.svg
Normal file
6
docs/assets/images/firezone-logo-wordmark-dark.svg
Normal 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 |
139
docs/docs/deploying-and-configuring.md
Normal file
139
docs/docs/deploying-and-configuring.md
Normal 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
BIN
docs/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 726 B |
@@ -3,8 +3,4 @@
|
||||
# To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
|
||||
|
||||
layout: home
|
||||
---
|
||||
|
||||
Firezone Documentation
|
||||
|
||||
WIP
|
||||
---
|
||||
Reference in New Issue
Block a user