4 <title>{{ hostname }} - {% block title %}{{ _(
"No title given") }}{% end block %}
</title>
5 <meta http-equiv=
"content-type" content=
"text/html; charset=utf-8" />
6 <meta name=
"author" content=
"IPFire.org - IPFire Development Team" />
8 <meta name=
"keywords" content=
"Linux, Firewall, IPFire, Security, IPCop, Open Source, Free, ARM, VPN, Proxy, IDS, IPS" />
9 <meta name=
"description" content=
"{{ _("IPFire is a free firewall distribution based on Linux.
") }}" />
11 <link rel=
"icon" sizes=
"192x192" href=
"{{ static_url("img/apple-touch-icon-
192x192-precomposed.png
") }}">
12 {% for res in (
"72x72",
"76x76",
"120x120",
"144x144",
"152x152",
"180x180") %}
13 <link rel=
"apple-touch-icon-precomposed" sizes=
"{{ res }}" href=
"{{ static_url("img/apple-touch-icon-%s-precomposed.png
" % res )}}">
15 <link rel=
"apple-touch-icon-precomposed" href=
"{{ static_url("img/apple-touch-icon-
60x60-precomposed.png
") }}">
17 <!-- styling stuff -->
18 <link rel=
"stylesheet" type=
"text/css" href=
"{{ static_url("main.css
") }}" />
19 <meta name=
"viewport" content=
"width=device-width, initial-scale=1.0">
21 {% block head %}{% end block %}
25 <nav class=
"navbar navbar-dark navbar-expand-lg mb-4">
26 <div class=
"container">
27 <a class=
"navbar-brand" href=
"/">
28 <strong>IPFire
</strong>
30 {% if hostname ==
"blog.ipfire.org" %}
32 {% elif hostname ==
"fireinfo.ipfire.org" %}
34 {% elif hostname ==
"mirrors.ipfire.org" %}
36 {% elif hostname ==
"people.ipfire.org" %}
38 {% elif hostname ==
"wiki.ipfire.org" %}
44 {% if hostname in (
"www.ipfire.org",
"dev.ipfire.org") %}
45 <button class=
"navbar-toggler" type=
"button" data-toggle=
"collapse" data-target=
"#navbar"
46 aria-controls=
"navbar" aria-expanded=
"false" aria-label=
"Toggle navigation">
47 <span class=
"fas fa-bars"></span>
50 <div class=
"collapse navbar-collapse" id=
"navbar">
51 <ul class=
"navbar-nav ml-auto">
52 <li class=
"nav-item d-sm-block d-md-block d-lg-none">
53 <a class=
"nav-link {% if request.path == "/
" %}active{% end %}" href=
"/">{{ _(
"Home") }}
</a>
57 <a class=
"nav-link {% if request.path == "/features
" %}active{% end %}" href=
"/features">{{ _(
"Features") }}
</a>
61 <a class=
"nav-link {% if request.path.startswith("/download
") %}active{% end %}" href=
"/download">{{ _(
"Download") }}
</a>
65 <a class=
"nav-link {% if request.path == "/support
" %}active{% end %}" href=
"/support">{{ _(
"Support") }}
</a>
69 <a class=
"nav-link" href=
"https://blog.ipfire.org/">{{ _(
"Blog") }}
</a>
73 <a class=
"btn btn-primary mt-2 mt-lg-0 ml-lg-2" href=
"/donate">
74 <span class=
"fas fa-heart"></span> {{ _(
"Donate") }}
77 {% elif hostname ==
"blog.ipfire.org" %}
78 <button class=
"navbar-toggler" type=
"button" data-toggle=
"collapse" data-target=
"#navbar"
79 aria-controls=
"navbar" aria-expanded=
"false" aria-label=
"Toggle navigation">
80 <span class=
"fas fa-bars"></span>
83 <div class=
"collapse navbar-collapse" id=
"navbar">
84 <ul class=
"navbar-nav ml-auto d-lg-none">
86 <a class=
"nav-link {% if request.path == "/
" %}active{% end %}" href=
"/">
93 <a class=
"nav-link {% if request.path == "/drafts
" %}active{% end %}" href=
"/drafts">
100 <a class=
"nav-link {% if request.path == "/tags/featured
" %}active{% end %}" href=
"/tags/featured">
105 <li class=
"nav-item">
106 <a class=
"nav-link {% if request.path == "/tags/lightningwirelabs.com
" %}active{% end %} d-flex justify-content-between"
107 href=
"/tags/lightningwirelabs.com">
108 <span>{{ _(
"Lightning Wire Labs") }}
</span>
110 <img class=
"img-fluid" src=
"{{ static_url("img/lightningwirelabs-logo.svg
") }}"
111 alt=
"{{ _("Lightning Wire Labs
") }}">
115 <li class=
"nav-item">
116 <a class=
"nav-link d-flex justify-content-between" href=
"/feed.xml">
117 <span>{{ _(
"RSS Feed") }}
</span> <span class=
"fas fa-rss"></span>
122 <form class=
"form-inline ml-lg-auto my-2 my-lg-0" action=
"/search" method=
"GET">
123 <input class=
"form-control form-control-sm" type=
"search" name=
"q"
124 placeholder=
"{{ _("Search...
") }}" aria-label=
"{{ _("Search
") }}" value=
"{% try %}{{ q }}{% except %}{% end %}">
127 <a class=
"btn btn-primary ml-lg-2" href=
"https://www.ipfire.org/donate">
128 <span class=
"fas fa-heart"></span> {{ _(
"Donate") }}
131 {% elif hostname ==
"fireinfo.ipfire.org" %}
132 <button class=
"navbar-toggler" type=
"button" data-toggle=
"collapse" data-target=
"#navbar"
133 aria-controls=
"navbar" aria-expanded=
"false" aria-label=
"Toggle navigation">
134 <span class=
"fas fa-bars"></span>
137 <div class=
"collapse navbar-collapse" id=
"navbar">
138 <ul class=
"navbar-nav ml-auto">
139 <li class=
"nav-item">
140 <a class=
"nav-link {% if request.path.startswith("/vendors
") %}active{% end %}" href=
"/vendors">
146 {% elif hostname ==
"nopaste.ipfire.org" %}
147 <button class=
"navbar-toggler" type=
"button" data-toggle=
"collapse" data-target=
"#navbar"
148 aria-controls=
"navbar" aria-expanded=
"false" aria-label=
"Toggle navigation">
149 <span class=
"fas fa-bars"></span>
152 <div class=
"collapse navbar-collapse" id=
"navbar">
153 <ul class=
"navbar-nav ml-auto">
154 <li class=
"nav-item">
155 <a class=
"nav-link" href=
"/?mode=upload">{{ _(
"Upload File") }}
</a>
159 {% elif hostname ==
"people.ipfire.org" %}
160 {% if current_user %}
161 <button class=
"navbar-toggler" type=
"button" data-toggle=
"collapse" data-target=
"#navbar"
162 aria-controls=
"navbar" aria-expanded=
"false" aria-label=
"Toggle navigation">
163 <span class=
"fas fa-bars"></span>
166 <div class=
"collapse navbar-collapse" id=
"navbar">
167 <ul class=
"navbar-nav ml-auto mr-3">
168 <li class=
"nav-item">
169 <a class=
"nav-link {% if request.path == "/users/%s
" % current_user.uid %}active{% end %}" href=
"/users/{{ current_user.uid }}">
170 {{ _(
"My Profile") }}
174 {% if current_user.has_sip() %}
175 <li class=
"nav-item">
176 <a class=
"nav-link {% if request.path.startswith("/users/%s/calls
" % current_user.uid) %}active{% end %}" href=
"/users/{{ current_user.uid }}/calls">
179 {% if current_user.sip_channels %}
180 <span class=
"badge badge-primary ml-2">{{ len(current_user.sip_channels) }}
</span>
186 {% if current_user.is_staff() %}
187 <li class=
"nav-item">
188 <a class=
"nav-link {% if request.path == "/users
" %}active{% end %}" href=
"/users">
194 {% if current_user.has_sip() %}
195 <li class=
"nav-item">
196 <a class=
"nav-link {% if request.path.startswith("/conferences
") %}active{% end %}" href=
"/conferences">
197 {{ _(
"Conferences") }}
203 <form class=
"form-inline my-2 my-lg-0" action=
"/search" method=
"GET">
204 <input class=
"form-control form-control-sm mr-sm-2" type=
"search" name=
"q"
205 placeholder=
"{{ _("Search
") }}" aria-label=
"{{ _("Search
") }}" value=
"{% try %}{{ q }}{% except %}{% end %}">
209 {% elif hostname ==
"wiki.ipfire.org" %}
210 <button class=
"navbar-toggler" type=
"button" data-toggle=
"collapse" data-target=
"#navbar"
211 aria-controls=
"navbar" aria-expanded=
"false" aria-label=
"Toggle navigation">
212 <span class=
"fas fa-bars"></span>
215 <div class=
"collapse navbar-collapse" id=
"navbar">
216 <ul class=
"navbar-nav ml-auto mr-3">
217 <li class=
"nav-item">
218 <a class=
"nav-link {% if request.path == "/recent-changes
" %}active{% end %}" href=
"/recent-changes">
219 {{ _(
"Recent Changes") }}
224 <form class=
"form-inline my-2 my-lg-0" action=
"/search" method=
"GET">
225 <input class=
"form-control form-control-sm" type=
"search" name=
"q"
226 placeholder=
"{{ _("Search...
") }}" aria-label=
"{{ _("Search
") }}" value=
"{% try %}{{ q }}{% except %}{% end %}">
229 <a class=
"btn btn-primary ml-lg-2" href=
"https://www.ipfire.org/donate">
230 <span class=
"fas fa-heart"></span> {{ _(
"Donate") }}
238 {% block container %}
239 <div class=
"container">
240 {% block content %}{% end block %}
247 {% if hostname in (
"www.ipfire.org",
"dev.ipfire.org") %}
248 <div class=
"footer-info">
249 <div class=
"container pb-3">
250 <div class=
"row mb-6 justify-content-between">
251 <div class=
"col-12 col-lg-4 mb-4">
252 <h6>{{ _(
"Subscribe to our Newsletter") }}
</h6>
254 <form method=
"POST" action=
"https://{{ "dev.ipfire.org
" if hostname == "dev.ipfire.org
" else "www.ipfire.org
" }}/newsletter/subscribe">
255 {% raw xsrf_form_html() %}
257 <label class=
"sr-only" for=
"email">{{ _(
"Email Address") }}
</label>
259 <input type=
"email" class=
"form-control mb-2 mr-sm-2" id=
"email" name=
"email"
260 placeholder=
"{{ _("Your Email Address
") }}" required
>
262 <button type=
"submit" class=
"btn btn-primary btn-block mb-2">{{ _(
"Subscribe") }}
</button>
266 <div class=
"col-12 col-lg-3 mb-4 small">
267 <h6>{{ _(
"About") }}
</h6>
271 <ul class=
"list-unstyled">
273 <a href=
"/features">{{ _(
"Features") }}
</a>
277 <a href=
"/download">{{ _(
"Download") }}
</a>
281 <a href=
"/support">{{ _(
"Support") }}
</a>
287 <ul class=
"list-unstyled">
289 <a href=
"https://blog.ipfire.org">{{ _(
"Blog") }}
</a>
293 <a href=
"https://wiki.ipfire.org/devel/start">{{ _(
"Development") }}
</a>
297 <a href=
"/legal">{{ _(
"Legal") }}
</a>
304 <div class=
"col-12 col-lg-4 text-center mb-4">
305 <a class=
"btn btn-primary btn-lg px-4 my-4" href=
"/donate">
306 <span class=
"fas fa-heart"></span> {{ _(
"Donate") }}
309 <div class=
"btn-toolbar justify-content-center">
310 <a class=
"btn btn-link" href=
"https://twitter.com/ipfire">
311 <span class=
"fab fa-twitter"></span>
314 <a class=
"btn btn-link" href=
"https://www.facebook.com/IPFire.org">
315 <span class=
"fab fa-facebook"></span>
318 <a class=
"btn btn-link" href=
"https://youtube.com/user/ipfireproject">
319 <span class=
"fab fa-youtube"></span>
328 <div class=
"copyright">
329 <div class=
"container d-flex justify-content-between">
330 © {{ year }} - IPFire - {{ _(
"The Open Source Firewall") }}
332 {% if not current_user and hostname in (
"blog.ipfire.org",
"nopaste.ipfire.org",
"wiki.ipfire.org") %}
333 <a href=
"/login">{{ _(
"Login") }}
</a>
334 {% elif current_user %}
336 {{ _(
"You are currently logged in as %s") % current_user.name }}
337 <a href=
"/logout">{{ _(
"Logout") }}
</a>
346 <script src=
"{{ static_url("js/jquery-
3.3.1.min.js
") }}"></script>
347 <script src=
"{{ static_url("js/popper.min.js
") }}"></script>
348 <script src=
"{{ static_url("js/bootstrap.min.js
") }}"></script>
349 {% block javascript %}{% end block %}