]> git.ipfire.org Git - ipfire.org.git/blob - src/templates/index.html
index: Redesign intro
[ipfire.org.git] / src / templates / index.html
1 {% extends "base.html" %}
2
3 {% block head %}
4 <link rel="alternate" type="application/rss+xml" title="RSS" href="https://blog.ipfire.org/feed.xml" />
5 {% end block %}
6
7 {% block title %}{{ _("Welcome to IPFire") }}{% end block %}
8
9 {% block container %}
10 <div class="main">
11 <div class="container intro">
12 <div class="row">
13 <div class="col-7">
14 <h1 class="display-3 mt-5">The Open Source Firewall Distribution</h1>
15
16 <div class="btn-toolbar">
17 <a class="btn btn-outline-primary btn-lg mr-3" href="/download">{{ _("Download") }}</a>
18 <a class="btn btn-outline-light btn-lg ml-3" href="/features">{{ _("Features") }}</a>
19 </div>
20 </div>
21
22 <div class="col-5 text-center">
23 <img class="img-fluid" src="{{ static_url("img/ipfire-tux.png") }}" alt="IPFire Logo" />
24 </div>
25 </div>
26 </div>
27
28 <section id="features">
29 <div class="container">
30 <h1 class="text-center">{{ _("Secure up your network with IPFire") }}</h1>
31
32 <div class="row mb-lg-6 mb-md-5">
33 <div class="col-md-6 col-lg-4 mb-6 pb-lg-5 d-flex">
34 <div class="feature_icons align-self-stretch">
35 <svg class="icon i_lg i_shield"><use xlink:href="#shield"/></svg>
36 </div>
37 <div class="flex-column">
38 <h5 class="pb-3">{{ _("Firewall") }}</h5>
39 <p>
40 IPFire comes with a versatile and state of the art
41 firewall engine that makes even the most complex
42 setups easy to administer.
43 </p>
44 </div>
45 </div>
46
47 <div class="col-md-6 col-lg-4 mb-6 d-flex">
48 <div class="feature_icons align-self-stretch">
49 <svg class="icon i_lg i_speed"><use xlink:href="#speed"/></svg>
50 </div>
51 <div class="flex-column">
52 <h5 class="pb-3">{{ _("Performance") }}</h5>
53 <p>
54 IPFire is ready for high performance networks
55 and running evenly well on embedded hardware.
56 </p>
57 </div>
58 </div>
59
60 <div class="col-md-6 col-lg-4 mb-6 d-flex">
61 <div class="feature_icons align-self-stretch">
62 <svg class="icon i_lg i_couch"><use xlink:href="#couch"/></svg>
63 </div>
64 <div class="flex-column">
65 <h5 class="pb-3">{{ _("Easy to use") }}</h5>
66 <p class="mb-1">
67 IPFire is set up easily in 15 to 20 minutes
68 but also comes with expert features that
69 are needed in professional networks.
70 </p>
71 </div>
72 </div>
73
74 <div class="col-md-6 col-lg-4 mb-6 d-flex">
75 <div class="feature_icons align-self-stretch">
76 <svg class="icon i_lg i_security"><use xlink:href="#security"/></svg>
77 </div>
78 <div class="flex-column">
79 <h5 class="pb-3">{{ _("Network Security") }}</h5>
80 <p>
81 IPFire is designed for high security.
82 It is hardened to protect itself from attacks
83 from the network.
84 </p>
85 </div>
86 </div>
87
88 <div class="col-md-6 col-lg-4 mb-6 d-flex">
89 <div class="feature_icons align-self-stretch">
90 <svg class="icon i_lg i_github"><use xlink:href="#github"/></svg>
91 </div>
92 <div class="flex-column">
93 <h5 class="pb-3">{{ _("Open Source") }}</h5>
94 <p>
95 IPFire is free software and developed by an open community,
96 that improves it every single day.
97 </p>
98 </div>
99 </div>
100
101 <div class="col-md-6 col-lg-4 mb-6 d-flex">
102 <div class="feature_icons align-self-stretch">
103 <svg class="icon i_lg i_heart"><use xlink:href="#heart"/></svg>
104 </div>
105 <div class="flex-column">
106 <h5 class="pb-3">{{ _("Trusted by thousands") }}</h5>
107 <p>
108 IPFire is developed in Europe and used all over the world
109 <a href="https://fireinfo.ipfire.org/statistics/geo-locations">in hundreds of countries</a>
110 by hundreds of thousands of users every day.
111 </p>
112 </div>
113 </div>
114 </div>
115
116 <div class="btn-toolbar justify-content-center pt-0 pt-md-4">
117 <a class="btn btn-primary btn-lg mr-4 px-4 px-md-6" href="/get-started">{{ _("Get Started") }}</a>
118 <a class="btn btn-secondary btn-lg px-4 px-md-6" href="/features">{{ _("Learn more") }}</a>
119 </div>
120 </div>
121 </section>
122
123 <section id="news">
124 <div class="container">
125 <div class="row">
126 <div class="col-12 col-md-6 col-lg-5 mb-5">
127 <h1>Latest Release</h1>
128
129 <p class="mb-0">
130 <small>{{ locale.format_date(latest_release.date, shorter=True) }}</small>
131 </p>
132
133 <h3 class="mb-5">
134 {% if latest_release.post %}
135 <a href="https://blog.ipfire.org/post/{{ latest_release.post.slug }}">
136 {{ _("%s has been released!") % latest_release.name }}
137 </a>
138 {% else %}
139 {{ _("%s has been released!") % latest_release.name }}
140 {% end %}
141 </h3>
142
143 <div class="btn-toolbar mb-5">
144 <a class="btn btn-primary mr-3" href="/download">
145 <svg class="icon i_sm i_download"><use xlink:href="#download"/></svg>
146 {{ _("Download") }}
147 </a>
148
149 <a class="btn btn-secondary ml-3" href="/donate">
150 <svg class="icon i_sm i_heart"><use xlink:href="#heart"/></svg>
151 {{ _("Donate") }}
152 </a>
153 </div>
154 </div>
155
156 <div class="col-12 col-md-6 col-lg-5 offset-lg-2">
157 <h1>What&rsquo;s going on?</h1>
158
159 <dl class="dl-horizontal">
160 {% for post in posts %}
161 <dt>
162 <small>{{ locale.format_date(post.published_at, relative=True, shorter=True) }} &nbsp;</small>
163 </dt>
164
165 <dd class="text-overflow mb-4">
166 <a href="https://blog.ipfire.org/post/{{ post.slug }}">{{ post.title }}</a>
167 </dd>
168 {% end %}
169 </dl>
170
171 <a class="btn btn-secondary" href="https://blog.ipfire.org/">{{ _("Read More") }}</a>
172 </div>
173 </div>
174 </div>
175 </section>
176
177 <section id="fireinfo">
178 <div class="container">
179 <h1 class="text-center">Fire<strong>Info</strong> Statistics</h1>
180
181 <div class="row mb-6 mb-md-5 pb-lg-5 mb-lg-6 justify-content-center">
182 <div class="col-6 col-md-3 mb-6 text-center">
183 <p class="mb-0 mb-sm-3 fireinfo_cat">Latest Release</p>
184 <h6 class="pb-5 fireinfo">{{ latest_release.name }}</h6>
185 <div class="r_circle circle mt-5">
186 <p class="fireinfo_per">{{ "%.0f%%" % (latest_release.penetration * 100) }}</p>
187 </div>
188 <script>
189 $('.r_circle').circleProgress({ value: {{ latest_release.penetration }}, size: 128, thickness: 4, animation: false, startAngle: -Math.PI / 2, fill: { color: ["#1976d2"] } });
190 </script>
191 </div>
192
193 {% if fireinfo_country %}
194 <div class="col-6 col-md-3 text-center">
195 <p class="mb-0 mb-sm-3 fireinfo_cat truncate">
196 {{ _("%.0f%% of all IPFire systems are running in") % (fireinfo_country.percentage * 100) }}
197 </p>
198 <h6 class="pb-5 fireinfo">{{ fireinfo_country.country.name }}</h6>
199 <div class="v_circle circle mt-5">
200 <p class="fireinfo_per">{{ "%.0f%%" % (fireinfo_country.percentage * 100) }}</p>
201 </div>
202 <script>
203 $('.v_circle').circleProgress({ value: {{ fireinfo_country.percentage }}, size: 128, thickness: 4, animation: false, startAngle: -Math.PI / 2, fill: { color: ["#ff8f00"] } });
204 </script>
205 </div>
206 {% end %}
207 </div>
208
209 <div class="row justify-content-center">
210 <a class="btn btn-lg btn-primary" href="/stats">More Stats</a>
211 </div>
212 </div>
213 </section>
214
215 <section id="appliances">
216 <div class="container">
217 <h1 class="text-center">{{ _("Professional Appliances & Services") }}</h1>
218
219 <div class="row mb-lg-6 mb-md-4 pb-6 pb-lg-4">
220 <div class="col-md-12 col-lg-7 mb-5 mb-md-6 mb-lg-0">
221 <p class="lead">
222 <a href="https://www.lightningwirelabs.com" target="_blank">Lightning Wire Labs</a> offer
223 IPFire hardware appliances for enterprises, large businesses and SOHO.
224 Deploying one of these on your network will provide you with the
225 greatest reliability, stability and performance.
226 </p>
227 </div>
228 <div class="col-sm-6 offset-sm-3 col-lg-4 offset-lg-1">
229 <a class="btn btn-dark btn-lg btn-block px-md-0 mb-4" href="/get-support#professional">{{ _("Get Professional Support") }}</a>
230 <a class="btn btn-dark btn-lg btn-block px-md-0" href="/hardware">{{ _("Hardware Appliances") }}</a>
231 </div>
232 </div>
233 <div class="text-center">
234 <picture>
235 <source media="(max-width: 575px" srcset="{{ static_url("img/appliance-pro_xs.png") }}">
236 <source media="(max-width: 767px" srcset="{{ static_url("img/appliance-pro_sm.png") }}">
237 <source media="(max-width: 991px" srcset="{{ static_url("img/appliance-pro_md.png") }}">
238 <source media="(min-width: 992px" srcset="{{ static_url("img/appliance-pro.png") }}">
239 <img class="img-fluid" src="{{ static_url("img/appliance-pro.png") }}" alt="Appliance">
240 </picture>
241 </div>
242 </div>
243 </section>
244 </div>
245 <script>
246 $(document).ready(function () {
247 $('.scroll').on('click', function(event) {
248 event.preventDefault();
249 $('html, body').stop().animate({
250 scrollTop: $('#features').offset().top -72
251 }, 1000);
252 });
253 });
254 </script>
255 {% end block %}