diff --git a/.gitignore b/.gitignore index fa7000c..40b67f4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ -public/ +/public resources/ -vid/ -.well-known/ -.hugo_build.lock +node_modules/ +package-lock.json +.hugo_build.lock \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..a1524f2 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ + +[submodule "themes/docsy"] + path = themes/docsy + url = https://github.com/google/docsy diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/conventionalCommit.xml b/.idea/conventionalCommit.xml new file mode 100644 index 0000000..2790c6f --- /dev/null +++ b/.idea/conventionalCommit.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..dc9ea49 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..7f0cbea --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/selfprivacy-docsy.iml b/.idea/selfprivacy-docsy.iml new file mode 100644 index 0000000..7636f51 --- /dev/null +++ b/.idea/selfprivacy-docsy.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..3fa002e --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..b009dfb --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +lts/* diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..db177d4 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,28 @@ +# How to Contribute + +We'd love to accept your patches and contributions to this project. There are +just a few small guidelines you need to follow. + +## Contributor License Agreement + +Contributions to this project must be accompanied by a Contributor License +Agreement. You (or your employer) retain the copyright to your contribution; +this simply gives us permission to use and redistribute your contributions as +part of the project. Head over to to see +your current agreements on file or to sign a new one. + +You generally only need to submit a CLA once, so if you've already submitted one +(even if it was for a different project), you probably don't need to do it +again. + +## Code reviews + +All submissions, including submissions by project members, require review. We +use GitHub pull requests for this purpose. Consult +[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more +information on using pull requests. + +## Community Guidelines + +This project follows +[Google's Open Source Community Guidelines](https://opensource.google.com/conduct/). diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4e65345 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,4 @@ +FROM klakegg/hugo:ext-alpine + +RUN apk add git && \ + git config --global --add safe.directory /src diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..0a8d792 --- /dev/null +++ b/README.md @@ -0,0 +1,138 @@ +# Docsy Example + +[Docsy][] is a [Hugo theme module][] for technical documentation sites, providing easy +site navigation, structure, and more. This **Docsy Example Project** uses the Docsy +theme component as a hugo module and provides a skeleton documentation structure for you to use. +You can clone/copy this project and edit it with your own content, or use it as an example. + +In this project, the Docsy theme component is pulled in as a Hugo module, together with other module dependencies: + +```bash +$ hugo mod graph +hugo: collected modules in 566 ms +hugo: collected modules in 578 ms +github.com/google/docsy-example github.com/google/docsy@v0.5.1-0.20221017155306-99eacb09ffb0 +github.com/google/docsy-example github.com/google/docsy/dependencies@v0.5.1-0.20221014161617-be5da07ecff1 +github.com/google/docsy/dependencies@v0.5.1-0.20221014161617-be5da07ecff1 github.com/twbs/bootstrap@v4.6.2+incompatible +github.com/google/docsy/dependencies@v0.5.1-0.20221014161617-be5da07ecff1 github.com/FortAwesome/Font-Awesome@v0.0.0-20220831210243-d3a7818c253f +``` + +You can find detailed theme instructions in the [Docsy user guide][]. + +This Docsy Example Project is hosted on [Netlify][] at [example.docsy.dev][]. +You can view deploy logs from the [deploy section of the project's Netlify +dashboard][deploys], or this [alternate dashboard][]. + +This is not an officially supported Google product. This project is currently maintained. + +## Using the Docsy Example Project as a template + +A simple way to get started is to use this project as a template, which gives you a site project that is set up and ready to use. To do this: + +1. Click **Use this template**. + +2. Select a name for your new project and click **Create repository from template**. + +3. Make your own local working copy of your new repo using git clone, replacing https://github.com/me/example.git with your repo’s web URL: + +```bash +git clone --depth 1 https://github.com/me/example.git +``` + +You can now edit your own versions of the site’s source files. + +If you want to do SCSS edits and want to publish these, you need to install `PostCSS` + +```bash +npm install +``` + +## Running the website locally + +Building and running the site locally requires a recent `extended` version of [Hugo](https://gohugo.io). +You can find out more about how to install Hugo for your environment in our +[Getting started](https://www.docsy.dev/docs/getting-started/#prerequisites-and-installation) guide. + +Once you've made your working copy of the site repo, from the repo root folder, run: + +``` +hugo server +``` + +## Running a container locally + +You can run docsy-example inside a [Docker](https://docs.docker.com/) +container, the container runs with a volume bound to the `docsy-example` +folder. This approach doesn't require you to install any dependencies other +than [Docker Desktop](https://www.docker.com/products/docker-desktop) on +Windows and Mac, and [Docker Compose](https://docs.docker.com/compose/install/) +on Linux. + +1. Build the docker image + + ```bash + docker-compose build + ``` + +1. Run the built image + + ```bash + docker-compose up + ``` + + > NOTE: You can run both commands at once with `docker-compose up --build`. + +1. Verify that the service is working. + + Open your web browser and type `http://localhost:1313` in your navigation bar, + This opens a local instance of the docsy-example homepage. You can now make + changes to the docsy example and those changes will immediately show up in your + browser after you save. + +### Cleanup + +To stop Docker Compose, on your terminal window, press **Ctrl + C**. + +To remove the produced images run: + +```console +docker-compose rm +``` +For more information see the [Docker Compose +documentation](https://docs.docker.com/compose/gettingstarted/). + +## Troubleshooting + +As you run the website locally, you may run into the following error: + +``` +➜ hugo server + +INFO 2021/01/21 21:07:55 Using config file: +Building sites … INFO 2021/01/21 21:07:55 syncing static files to / +Built in 288 ms +Error: Error building site: TOCSS: failed to transform "scss/main.scss" (text/x-scss): resource "scss/scss/main.scss_9fadf33d895a46083cdd64396b57ef68" not found in file cache +``` + +This error occurs if you have not installed the extended version of Hugo. +See this [section](https://www.docsy.dev/docs/get-started/docsy-as-module/installation-prerequisites/#install-hugo) of the user guide for instructions on how to install Hugo. + +Or you may encounter the following error: + +``` +➜ hugo server + +Error: failed to download modules: binary with name "go" not found +``` + +This error occurs if you have not installed the `go` programming language on your system. +See this [section](https://www.docsy.dev/docs/get-started/docsy-as-module/installation-prerequisites/#install-go-language) of the user guide for instructions on how to install `go`. + + +[alternate dashboard]: https://app.netlify.com/sites/goldydocs/deploys +[deploys]: https://app.netlify.com/sites/docsy-example/deploys +[Docsy user guide]: https://docsy.dev/docs +[Docsy]: https://github.com/google/docsy +[example.docsy.dev]: https://example.docsy.dev +[Hugo theme module]: https://gohugo.io/hugo-modules/use-modules/#use-a-module-for-a-theme +[Netlify]: https://netlify.com diff --git a/assets/icons/logo.svg b/assets/icons/logo.svg new file mode 100644 index 0000000..4d038ac --- /dev/null +++ b/assets/icons/logo.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/assets/images/1-en.png b/assets/images/1-en.png new file mode 100644 index 0000000..d2a71bd Binary files /dev/null and b/assets/images/1-en.png differ diff --git a/assets/images/1-ru.png b/assets/images/1-ru.png new file mode 100644 index 0000000..a1bebfb Binary files /dev/null and b/assets/images/1-ru.png differ diff --git a/assets/images/2-en.png b/assets/images/2-en.png new file mode 100644 index 0000000..7612167 Binary files /dev/null and b/assets/images/2-en.png differ diff --git a/assets/images/2-ru.png b/assets/images/2-ru.png new file mode 100644 index 0000000..25ab2a6 Binary files /dev/null and b/assets/images/2-ru.png differ diff --git a/assets/images/3-en.png b/assets/images/3-en.png new file mode 100644 index 0000000..51186ab Binary files /dev/null and b/assets/images/3-en.png differ diff --git a/assets/images/3-ru.png b/assets/images/3-ru.png new file mode 100644 index 0000000..0abee7e Binary files /dev/null and b/assets/images/3-ru.png differ diff --git a/assets/images/4-en.png b/assets/images/4-en.png new file mode 100644 index 0000000..c0980f4 Binary files /dev/null and b/assets/images/4-en.png differ diff --git a/assets/images/4-ru.png b/assets/images/4-ru.png new file mode 100644 index 0000000..7fd64fe Binary files /dev/null and b/assets/images/4-ru.png differ diff --git a/assets/images/5-en.png b/assets/images/5-en.png new file mode 100644 index 0000000..f1e4f33 Binary files /dev/null and b/assets/images/5-en.png differ diff --git a/assets/images/5-ru.png b/assets/images/5-ru.png new file mode 100644 index 0000000..59c4f76 Binary files /dev/null and b/assets/images/5-ru.png differ diff --git a/assets/images/svgs/arrow.svg b/assets/images/svgs/arrow.svg new file mode 100755 index 0000000..2e650ef --- /dev/null +++ b/assets/images/svgs/arrow.svg @@ -0,0 +1,2 @@ + + diff --git a/assets/images/svgs/book.svg b/assets/images/svgs/book.svg new file mode 100755 index 0000000..7133c2c --- /dev/null +++ b/assets/images/svgs/book.svg @@ -0,0 +1,2 @@ + + diff --git a/assets/images/svgs/cool.svg b/assets/images/svgs/cool.svg new file mode 100755 index 0000000..169e09a --- /dev/null +++ b/assets/images/svgs/cool.svg @@ -0,0 +1,2 @@ + + diff --git a/assets/images/svgs/coolhack3r.svg b/assets/images/svgs/coolhack3r.svg new file mode 100755 index 0000000..36adc5e --- /dev/null +++ b/assets/images/svgs/coolhack3r.svg @@ -0,0 +1,2 @@ + + diff --git a/assets/images/svgs/datactrl.svg b/assets/images/svgs/datactrl.svg new file mode 100755 index 0000000..62a0482 --- /dev/null +++ b/assets/images/svgs/datactrl.svg @@ -0,0 +1,2 @@ + + diff --git a/assets/images/svgs/main_stroke.svg b/assets/images/svgs/main_stroke.svg new file mode 100755 index 0000000..ddb1e4c --- /dev/null +++ b/assets/images/svgs/main_stroke.svg @@ -0,0 +1,932 @@ + + + + diff --git a/assets/images/svgs/privacy.svg b/assets/images/svgs/privacy.svg new file mode 100755 index 0000000..2485db4 --- /dev/null +++ b/assets/images/svgs/privacy.svg @@ -0,0 +1,2 @@ + + diff --git a/assets/images/svgs/security.svg b/assets/images/svgs/security.svg new file mode 100755 index 0000000..f4810be --- /dev/null +++ b/assets/images/svgs/security.svg @@ -0,0 +1,2 @@ + + diff --git a/assets/images/svgs/simplicity.svg b/assets/images/svgs/simplicity.svg new file mode 100755 index 0000000..d0cd422 --- /dev/null +++ b/assets/images/svgs/simplicity.svg @@ -0,0 +1,2 @@ + + diff --git a/assets/images/svgs/smartphonecomparison.svg b/assets/images/svgs/smartphonecomparison.svg new file mode 100755 index 0000000..36fb559 --- /dev/null +++ b/assets/images/svgs/smartphonecomparison.svg @@ -0,0 +1,2 @@ + + diff --git a/assets/images/svgs/thisisfine.svg b/assets/images/svgs/thisisfine.svg new file mode 100755 index 0000000..5463945 --- /dev/null +++ b/assets/images/svgs/thisisfine.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/assets/images/svgs/zerotrust_compressed_optimized_stroke.svg b/assets/images/svgs/zerotrust_compressed_optimized_stroke.svg new file mode 100755 index 0000000..646741f --- /dev/null +++ b/assets/images/svgs/zerotrust_compressed_optimized_stroke.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/scss/_styles_project.scss b/assets/scss/_styles_project.scss new file mode 100644 index 0000000..cd0f521 --- /dev/null +++ b/assets/scss/_styles_project.scss @@ -0,0 +1,82 @@ +.td-navbar { + background: $dark; + min-height: 5rem; + .navbar-brand__name { + display: none; + } + .nav-link { + font-weight: 600; + } +} + + + + +@media (min-width: 768px) { + .td-sidebar { + padding-top: 5rem; + } + .td-404 main, .td-main main { + padding-top: 6.5rem; + } + .td-sidebar-toc { + padding-top: 2.75rem; + } +} + +.rounded-img { + border-radius: 1rem; +} + +.sp-button-shadow { + box-shadow: 0px -0.5rem 0px 0px rgba(0, 0, 0, 0.1) inset; +} + +.sp-button-big-padding { + padding-bottom: 1rem; + padding-top: 0.8rem; + font-weight: 600; +} + +.sp-feature-title { + font-weight: 600; +} + +.sp-footer { + .nav-link { + font-weight: 600; + padding: 0.3rem 0; + color: $navbar-dark-color; + + &:hover { + color: $navbar-dark-hover-color; + } + + &:active { + color: $navbar-dark-active-color; + } + + &:disabled { + color: $navbar-dark-disabled-color; + } + } +} + +.sp-service-icon { + margin-top: -4rem; + max-width: 12rem; + max-height: 8rem; + margin-left: 2rem; + width: max-content; +} + +.sp-service-card { + background: #FFFFFF; + box-shadow: 0 8px 8px rgba(0, 0, 0, 0.25); + border-radius: 10px; + border: none; +} + +.sp-services-row { + margin-top: 6rem; +} \ No newline at end of file diff --git a/assets/scss/_variables_project.scss b/assets/scss/_variables_project.scss new file mode 100644 index 0000000..c284a43 --- /dev/null +++ b/assets/scss/_variables_project.scss @@ -0,0 +1,20 @@ +/* + +Add styles or override variables from the theme here. + +*/ + +$primary: #7EB07F; +$secondary: #F2C94C; +$dark: #30312C; + +$td-enable-google-fonts: false; +$google_font_name: "Montserrat"; +$google_font_family: "Montserrat:300,300i,400,400i,500,500i,600,700,700i"; + +$font-family-sans-serif: "Montserrat", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + +$navbar-dark-color: rgba($secondary, 0.8) !default; +$navbar-dark-hover-color: rgba($secondary, 1) !default; +$navbar-dark-active-color: $secondary !default; +$navbar-dark-disabled-color: rgba($secondary, 0.25) !default; \ No newline at end of file diff --git a/config.toml b/config.toml index 8dcc885..5aa44c8 100644 --- a/config.toml +++ b/config.toml @@ -1,21 +1,219 @@ -baseURL = 'https://selfprivacy.org/' -title = 'SelfPrivacy' -defaultContentLanguage = 'en' +baseURL = "/" +title = "SelfPrivacy" -[params] -description = 'Self-hosted services without pain' +# Language settings +contentDir = "content/en" +defaultContentLanguage = "en" +defaultContentLanguageInSubdir = false +# Useful when translating. +enableMissingTranslationPlaceholders = true + +enableRobotsTXT = true + +# Will give values to .Lastmod etc. +enableGitInfo = true + +# Comment out to enable taxonomies in Docsy +# disableKinds = ["taxonomy", "taxonomyTerm"] + +# You can add your own taxonomies +[taxonomies] +tag = "tags" +category = "categories" + +[params.taxonomy] +# set taxonomyCloud = [] to hide taxonomy clouds +taxonomyCloud = ["tags", "categories"] + +# If used, must have same length as taxonomyCloud +taxonomyCloudTitle = ["Tag Cloud", "Categories"] + +# set taxonomyPageHeader = [] to hide taxonomies on the page headers +taxonomyPageHeader = ["tags", "categories"] + + +# Highlighting config +pygmentsCodeFences = true +pygmentsUseClasses = false +# Use the new Chroma Go highlighter in Hugo. +pygmentsUseClassic = false +#pygmentsOptions = "linenos=table" +# See https://help.farbox.com/pygments.html +pygmentsStyle = "tango" + +# Configure how URLs look like per section. +[permalinks] +blog = "/:section/:year/:month/:day/:slug/" + +# Image processing configuration. +[imaging] +resampleFilter = "CatmullRom" +quality = 75 +anchor = "smart" + +[services] +[services.googleAnalytics] +# Comment out the next line to disable GA tracking. Also disables the feature described in [params.ui.feedback]. +#id = "UA-00000000-0" + +# Language configuration [languages] - [languages.ru] - languageCode = 'ru-RU' - languageName = 'Русский' - weight = 0 - [languages.en] - languageCode = 'en-US' - languageName = 'English' - weight = 1 +[languages.en] +title = "SelfPrivacy" +description = "A Docsy example site" +languageName ="English" +# Weight used for sorting. +weight = 1 +[languages.ru] +title = "SelfPrivacy" +description = "Docsy er operativsystem for skyen" +languageName ="Русский" +contentDir = "content/ru" +time_format_default = "02.01.2006" +time_format_blog = "02.01.2006" [markup] [markup.goldmark] [markup.goldmark.renderer] unsafe = true + [markup.highlight] + # See a complete list of available styles at https://xyproto.github.io/splash/docs/all.html + style = "tango" + # Uncomment if you want your chosen highlight style used for code blocks without a specified language + # guessSyntax = "true" + +# Everything below this are Site Params + +# Comment out if you don't want the "print entire section" link enabled. +[outputs] +section = ["HTML", "print", "RSS"] + +[params] +copyright = "SelfPrivacy" +privacy_policy = "https://selfprivacy.org/privacy-policy/" + +# First one is picked as the Twitter card image if not set on page. +# images = ["images/project-illustration.png"] + +# Menu title if your navbar has a versions selector to access old versions of your site. +# This menu appears only if you have at least one [params.versions] set. +version_menu = "Releases" + +# Flag used in the "version-banner" partial to decide whether to display a +# banner on every page indicating that this is an archived version of the docs. +# Set this flag to "true" if you want to display the banner. +archived_version = false + +# The version number for the version of the docs represented in this doc set. +# Used in the "version-banner" partial to display a version number for the +# current doc set. +version = "0.0" + +# A link to latest version of the docs. Used in the "version-banner" partial to +# point people to the main doc site. +url_latest_version = "https://selfprivacy.org" + +# Repository configuration (URLs for in-page links to opening issues and suggesting changes) +github_repo = "https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org" +# An optional link to a related project repo. For example, the sibling repository where your product code lives. +github_project_repo = "https://git.selfprivacy.org/kherel/selfprivacy.org.app" + +# Specify a value here if your content directory is not in your repo's root directory +# github_subdir = "" + +# Uncomment this if your GitHub repo does not have "main" as the default branch, +# or specify a new value if you want to reference another branch in your GitHub links +github_branch= "master" + +# Google Custom Search Engine ID. Remove or comment out to disable search. +#gcs_engine_id = "d72aa9b2712488cc3" + +# Enable Algolia DocSearch +algolia_docsearch = false + +# Enable Lunr.js offline search +offlineSearch = false + +# Enable syntax highlighting and copy buttons on code blocks with Prism +prism_syntax_highlighting = false + +# User interface configuration +[params.ui] +# Set to true to disable breadcrumb navigation. +breadcrumb_disable = false +# Set to true to disable the About link in the site footer +footer_about_disable = false +# Set to false if you don't want to display a logo (/assets/icons/logo.svg) in the top navbar +navbar_logo = true +# Set to true if you don't want the top navbar to be translucent when over a `block/cover`, like on the homepage. +navbar_translucent_over_cover_disable = false +# Enable to show the side bar menu in its compact state. +sidebar_menu_compact = false +# Set to true to hide the sidebar search box (the top nav search box will still be displayed if search is enabled) +sidebar_search_disable = false + +# Adds a H2 section titled "Feedback" to the bottom of each doc. The responses are sent to Google Analytics as events. +# This feature depends on [services.googleAnalytics] and will be disabled if "services.googleAnalytics.id" is not set. +# If you want this feature, but occasionally need to remove the "Feedback" section from a single page, +# add "hide_feedback: true" to the page's front matter. +[params.ui.feedback] +enable = false +# The responses that the user sees after clicking "yes" (the page was helpful) or "ru" (the page was not helpful). +yes = 'Glad to hear it! Please tell us how we can improve.' +no = 'Sorry to hear that. Please tell us how we can improve.' + +# Adds a reading time to the top of each doc. +# If you want this feature, but occasionally need to remove the Reading time from a single page, +# add "hide_readingtime: true" to the page's front matter +[params.ui.readingtime] +enable = true + +[params.links] +# End user relevant links. These will show up on left side of footer and in the community page if you have one. +[[params.links.user]] + name = "User mailing list" + url = "https://example.org/mail" + icon = "fa fa-envelope" + desc = "Discussion and help from your fellow users" +[[params.links.user]] + name ="Twitter" + url = "https://example.org/twitter" + icon = "fab fa-twitter" + desc = "Follow us on Twitter to get the latest news!" +[[params.links.user]] + name = "Stack Overflow" + url = "https://example.org/stack" + icon = "fab fa-stack-overflow" + desc = "Practical questions and curated answers" +# Developer relevant links. These will show up on right side of footer and in the community page if you have one. +[[params.links.developer]] + name = "GitHub" + url = "https://github.com/google/docsy" + icon = "fab fa-github" + desc = "Development takes place here!" +[[params.links.developer]] + name = "Slack" + url = "https://example.org/slack" + icon = "fab fa-slack" + desc = "Chat with other project developers" +[[params.links.developer]] + name = "Developer mailing list" + url = "https://example.org/mail" + icon = "fa fa-envelope" + desc = "Discuss development issues around the project" + +# hugo module configuration + +[module] + # uncomment line below for temporary local development of module + # replacements = "github.com/google/docsy -> ../../docsy" + [module.hugoVersion] + extended = true + min = "0.75.0" + [[module.imports]] + path = "github.com/google/docsy" + disable = false + [[module.imports]] + path = "github.com/google/docsy/dependencies" + disable = false \ No newline at end of file diff --git a/content/_index.en.md b/content/_index.en.md deleted file mode 100644 index cf44856..0000000 --- a/content/_index.en.md +++ /dev/null @@ -1,243 +0,0 @@ ---- -title: SelfPrivacy -images: ["brand.png"] ---- - -
-
-
-
-
- -
-
-
-

-SelfPrivacy is a platform on user's hosting provider for deploying private services, managed via mobile application. -

-
-
-Digital independence, available to all of us -
-
-SelfPrivacy — it's not a cloud, but your personal datacenter -
-
-Services of SelfPrivacy -
-
-Connecting a server to SelfPrivacy -
-
-Your datacenter -
-
-
- -
-
-
-
-
-

-Your personal services -

-
-
-

-E-Mail -

-

-Unlimited mailboxes amount for a company or family. -

-
-
-

-Messenger -

-

-The most private messenger -is the one with the server part located on your personal server. That's what makes DeltaChat -more private than Telegram and Signal. -

-
-
-

-Password Manager -

-

-Passwords no longer need to be remembered, copied between devices, invented or entered manually. -
-
-Bitwarden is a trusted password manager for all devices. -

-
-
-

-Cloud storage -

-

-Nextcloud is a private -and functional replacement -for Dropbox and G-drive. -

-
-
-

-Videomeet -

-

-Zoom and Google-meet are no longer needed when there is a Jitsi-meet. Very simple and convenient video -conferencing solution. -

-
-
-

-Git repository -

-

-Gitea is an excellent analogue of Github, which belongs to you, -not Microsoft. -

-
-
-

-VPN for all of your friends and relatives devices -

-

-No public VPN -can be private, -just those one which is on your server. -OpenConnect -— connect an unlimited number of devices. -

-
-
-

-Decentralized social network -

-

-Pleroma is a social network where you decide who to block and what to publish. No more advertising and -surveillance. -

-
-
-
-
-
-
-

Advantages

-
-
-
-
-

-Zero trust -

-

-SelfPrivacy is developed on the "zero trust" principle, even in relation to SelfPrivacy developers. -That means you're the sole owner of your data. -

-
-
-

-Simplicity -

-

-It works simple. Without console, complicated instructions, monitoring and involvement of specialists. -

-
-
-

-Functionality -

-

-Your data will not be lost thanks to regular automatic backups to a -separate data center. -

-
-
-
-
-
-icon -

-Data control -

-

-Why do corporations need your data? -To make you buy more and vote as they want. -With SelfPrivacy, only you have your data. -

-
-
-icon -

-Security -

-

-Open source. The $2,000 reward for RCE vulnerability significantly increases security -compared to conventional self-hosted solutions. -

-
-
-
-
-icon -

-No license agreements -

-

-What is written in the license agreements that you accept without reading? -It says that you allow companies to do anything with your data. -SelfPrivacy has no license agreements. -

-
-
-icon -

-Save your time and money -

-

-How to save $500 or two weeks of your life? -Will it take the same time and money for a specialist to set everything up from scratch? -

-SelfPrivacy team works continuously to speed up and simplify this process to a few clicks. -

-Now anyone will be capable to setup their own data center. -

-
-
-
-
-icon -

-Independency -

-

-Your communications on the internet no longer depend on Google, Facebook, Amazon and others E-Corps. -

-Your services are your rules! -You will not be blocked or disabled, accidentally or for any other reason. -Your infrastructure and data will always remain with you. -

-
-
-icon -

-Privacy -

-

-No registration, cookies, telemetry, logs, Google analytics and clouds. -

-
-
-
-
-
diff --git a/content/_index.ru.md b/content/_index.ru.md deleted file mode 100644 index 4a05bda..0000000 --- a/content/_index.ru.md +++ /dev/null @@ -1,240 +0,0 @@ ---- -title: SelfPrivacy -images: ["brand.png"] ---- - -
-
-
-
-
- -
-
-
-

-SelfPrivacy - это платформа на хостинге пользователя для разворачивания приватных сервисов, управляемых мобильным приложением. -

-
-
-Цифровая независимость доступна каждому -
-
-SelfPrivacy — это не облако, а Ваш личный дата-центр -
-
-Сервисы SelfPrivacy -
-
-Подключение сервера -
-
-Обзор дата-центра -
-
-
- -
-
-
-
-
-

-Ваши личные сервисы -

-
-
-

-Электронная почта -

-

-Для семьи или компании с неограниченным количеством почтовых ящиков. -

-
-
-

-Мессенджер -

-

-Самый приватный мессенджер — это тот, у которого серверная часть находится под вашим контролем. Это делает DeltaChat приватнее Telegram и Signal. -

-
-
-

-Менеджер паролей -

-

-Пароли больше не нужно запоминать, копировать между устройствами, придумывать или вводить вручную. -
-
-Bitwarden — надежный менеджер паролей для всех устройств. -

-
-
-

-Файловое облако -

-

-Nextcloud — приватная -и функциональная замена -Dropbox и G-drive. -

-
-
-

-Видеоконференция -

-

-Zoom и Google-meet больше не нужны, когда есть Jitsi-meet. Очень простое и удобное решение для -видеоконференций. -

-
-
-

-Git-репозиторий -

-

-Gitea — отличный аналог Github, который принадлежит Вам, -а не Microsoft. -

-
-
-

-VPN для всех устройств друзей и близких -

-

-Ни один публичный VPN -не может быть приватным, если только он не расположен на вашем сервере. -OpenConnect -— подключайте неограниченное количество устройств. -

-
-
-

-Децентрализованная социальная сеть -

-

-Pleroma — социальная сеть в которой вы решаете, кого заблокировать и что публиковать. Никакой больше рекламы -и слежки. -

-
-
-
-
-
-
-

Преимущества

-
-
-
-
-

-Нулевое доверие -

-

-SelfPrivacy разработан по принципу "нулевого доверия", даже к самим разработчикам SelfPrivacy. Это -значит, что Вы — единственный владелец своих данных. -

-
-
-

-Простота -

-

-Это работает просто. Без консоли, сложных инструкций, мониторинга и привлечения специалистов. -

-
-
-

-Функционал -

-

-Ваши данные никуда не пропадут благодаря регулярному автоматическому резервному копированию в отдельный -дата-центр. -

-
-
-
-
-
-icon -

-Контроль данных -

-

-Почему корпорациям так нужны Ваши данные? -Чтобы больше покупали, чтобы Вы голосовали, как им нужно. -В SelfPrivacy Ваши данные остаются только у Вас. -

-
-
-icon -

-Безопасность -

-

-Открытый код. Вознаграждение $2000 за RCE-уязвимость значительно повышает безопасность в сравнении с -обычными self-hosted решениями. -

-
-
-
-
-icon -

-Без лицензионных соглашений -

-

-Что написано в лицензионных соглашениях, которые Вы принимаете, не читая? -Там написано, что с Вашими данными можно делать что угодно. -В SelfPrivacy нет лицензионных соглашений. -

-
-
-icon -

-Экономия времени, денег и сил -

-

-Как сэкономить $500 или две недели жизни? -Столько понадобится времени и денег специалисту, чтобы настроить все самому с нуля? -

-Команда SelfPrivacy непрерывно работает, чтобы ускорить и упростить этот процесс до нескольких кликов. -

-Теперь создание личного дата-центра под силу любому желающему. -

-
-
-
-
-icon -

-Независимость -

-

-Ваши коммуникации в интернете не зависят от Google, Facebook, Amazon и прочих мегакорпораций. -

-Ваши сервисы — Ваши правила! -Вас не заблокируют, не отключат, случайно или по какой-либо другой причине. Ваша инфраструктура и данные -всегда останутся с Вами. -

-
-
-icon -

-Приватность -

-

-Без регистрации, куков, телеметрии, логов, гугл аналитики и облаков. -

-
-
-
-
-
diff --git a/content/brand.png b/content/brand.png deleted file mode 100755 index 1ccabb7..0000000 Binary files a/content/brand.png and /dev/null differ diff --git a/content/en/_index.html b/content/en/_index.html new file mode 100644 index 0000000..d56f5fa --- /dev/null +++ b/content/en/_index.html @@ -0,0 +1,180 @@ ++++ +title = "SelfPrivacy" +linkTitle = "SelfPrivacy" + ++++ + +{{< blocks/section color="dark" type="section" >}} +
+
+
+ +
+
+
+
+

+ SelfPrivacy app allows you to set up self-hosted services and manage them. +

+ }}"> + Download + +
+
+
+{{< /blocks/section >}} + +{{< blocks/section color="white" type="section" >}} +
+

Your personal services

+
+ +
+

For serious business

+
+ +
+
+ {{< landing-service "/images/services/email.svg" "E-mail" >}} +

Unlimited mailboxes amount for a company or family.

+ {{< /landing-service >}} +
+ +
+ {{< landing-service "/images/services/nextcloud.svg" "Cloud storage" >}} +

Nextcloud is a private and functional replacement for Dropbox and G-drive.

+ {{< /landing-service >}} +
+ +
+ {{< landing-service "/images/services/gitea.svg" "Git repository" >}} +

Gitea is an excellent analogue of Github, which belongs to you, not Microsoft.

+ {{< /landing-service >}} +
+
+ +
+

For entertainment and communication

+
+ +
+
+ {{< landing-service "/images/services/deltachat.svg" "Messenger" >}} +

The most private messenger is the one with the server part located on your personal server. That's what makes DeltaChat more private than Telegram and Signal.

+ {{< /landing-service >}} +
+ +
+ {{< landing-service "/images/services/pleroma.svg" "Decentralized social network" >}} +

Pleroma is a social network where you decide who to block and what to publish. No more advertising and surveillance.

+ {{< /landing-service >}} +
+ +
+ {{< landing-service "/images/services/jitsi.svg" "Videomeet" >}} +

Zoom and Google-meet are no longer needed when there is a Jitsi-meet. Very simple and convenient video conferencing solution.

+ {{< /landing-service >}} +
+
+ + +
+

For a good life

+
+ +
+
+ {{< landing-service "/images/services/openconnect.svg" "VPN for all of your friends and relatives devices" >}} +

No public VPN can be private, just those one which is on your server. OpenConnect — connect an unlimited number of devices.

+ {{< /landing-service >}} +
+ +
+ {{< landing-service "/images/services/bitwarden.svg" "Password Manager" >}} +

Passwords no longer need to be remembered, copied between devices, invented or entered manually.

+

Bitwarden is a trusted password manager for all devices.

+ {{< /landing-service >}} +
+
+{{< /blocks/section >}} + +{{< blocks/section color="white" type="section" >}} +
+

Advantages

+
+ + {{< landing-feature privacy "Privacy" >}} +

No registration, cookies or telemetry.

+ {{< /landing-feature >}} + + {{< landing-feature zerotrust "Zero trust" "right">}} +

SelfPrivacy is developed on the «zero trust» principle, even in relation to SelfPrivacy developers. That means you're the sole owner of your data.

+ {{< /landing-feature >}} + + {{< landing-feature security "Security">}} +

Open source. The $2,000 reward for RCE vulnerability significantly increases security compared to conventional self-hosted solutions.

+ {{< /landing-feature >}} + + {{< landing-feature simplicity "Simplicity" "right">}} +

It is simple. Without console, complicated instructions, monitoring and involvement of specialists.

+ {{< /landing-feature >}} + + {{< landing-feature arrow "No license agreements">}} +

What is written in the license agreements that you accept without reading? It says that you allow companies to do anything with your data. SelfPrivacy has no license agreements.

+ {{< /landing-feature >}} + + {{< landing-feature coolhack3r "Save your time and money" "right">}} +

How to save $500 or two weeks of your life? Will it take the same time and money for a specialist to set everything up from scratch?

+

SelfPrivacy team works continuously to speed up and simplify this process to a few clicks.

+

Now anyone will be capable to set up their own data center.

+ {{< /landing-feature >}} + + {{< landing-feature thisisfine "Functionality">}} +

Your data will not be lost thanks to regular automatic backups to a separate data center.

+ {{< /landing-feature >}} + + {{< landing-feature smartphonecomparison "Independence" "right">}} +

Your communications on the internet no longer depend on Google, Facebook, Amazon and others E-Corps.

+

Your services, your rules! You will not be blocked or disabled, accidentally or for any other reason. Your infrastructure and data will always remain with you.

+ {{< /landing-feature >}} + + {{< landing-feature datactrl "Data control">}} +

Why do corporations need your data? To make you buy more and vote as they want. With SelfPrivacy, only you have your data.

+ {{< /landing-feature >}} + +{{< /blocks/section >}} + + diff --git a/content/en/arrow.svg b/content/en/arrow.svg new file mode 100755 index 0000000..2e650ef --- /dev/null +++ b/content/en/arrow.svg @@ -0,0 +1,2 @@ + + diff --git a/content/en/blog/_index.md b/content/en/blog/_index.md new file mode 100644 index 0000000..43820eb --- /dev/null +++ b/content/en/blog/_index.md @@ -0,0 +1,13 @@ +--- +title: "Docsy Blog" +linkTitle: "Blog" +menu: + main: + weight: 30 +--- + + +This is the **blog** section. It has two categories: News and Releases. + +Files in these directories will be listed in reverse chronological order. + diff --git a/content/en/blog/news/_index.md b/content/en/blog/news/_index.md new file mode 100644 index 0000000..13d25ea --- /dev/null +++ b/content/en/blog/news/_index.md @@ -0,0 +1,8 @@ + +--- +title: "News About Docsy" +linkTitle: "News" +weight: 20 +--- + + diff --git a/content/en/blog/news/first-post/featured-sunset-get.png b/content/en/blog/news/first-post/featured-sunset-get.png new file mode 100644 index 0000000..db3373c Binary files /dev/null and b/content/en/blog/news/first-post/featured-sunset-get.png differ diff --git a/content/en/blog/news/first-post/index.md b/content/en/blog/news/first-post/index.md new file mode 100644 index 0000000..b6bfb47 --- /dev/null +++ b/content/en/blog/news/first-post/index.md @@ -0,0 +1,46 @@ +--- +date: 2018-10-06 +title: "Easy documentation with Docsy" +linkTitle: "Announcing Docsy" +description: "The Docsy Hugo theme lets project maintainers and contributors focus on content, not on reinventing a website infrastructure from scratch" +author: Riona MacNamara ([@rionam](https://twitter.com/bepsays)) +resources: +- src: "**.{png,jpg}" + title: "Image #:counter" + params: + byline: "Photo: Riona MacNamara / CC-BY-CA" +--- + +**This is a typical blog post that includes images.** + +The front matter specifies the date of the blog post, its title, a short description that will be displayed on the blog landing page, and its author. + +## Including images + +Here's an image (`featured-sunset-get.png`) that includes a byline and a caption. + +{{< imgproc sunset Fill "600x300" >}} +Fetch and scale an image in the upcoming Hugo 0.43. +{{< /imgproc >}} + +The front matter of this post specifies properties to be assigned to all image resources: + +``` +resources: +- src: "**.{png,jpg}" + title: "Image #:counter" + params: + byline: "Photo: Riona MacNamara / CC-BY-CA" +``` + +To include the image in a page, specify its details like this: + +``` +{{< imgproc sunset Fill "600x300" >}} +Fetch and scale an image in the upcoming Hugo 0.43. +{{< /imgproc >}} +``` + +The image will be rendered at the size and byline specified in the front matter. + + diff --git a/content/en/blog/news/second-post.md b/content/en/blog/news/second-post.md new file mode 100755 index 0000000..0ef58d7 --- /dev/null +++ b/content/en/blog/news/second-post.md @@ -0,0 +1,245 @@ + +--- +title: "The second blog post" +linkTitle: "Second blog post" +date: 2018-10-06 +description: > + A short lead description about this content page. Text here can also be **bold** or _italic_ and can even be split over multiple paragraphs. +--- + +Text can be **bold**, _italic_, or ~~strikethrough~~. [Links](https://github.com) should be blue with no underlines (unless hovered over). + +There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. + +There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. + +> There should be no margin above this first sentence. +> +> Blockquotes should be a lighter gray with a border along the left side in the secondary color. +> +> There should be no margin below this final sentence. + +## First Header + +This is a normal paragraph following a header. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + + + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +On big screens, paragraphs and headings should not take up the full container width, but we want tables, code blocks and similar to take the full width. + +Lorem markdownum tuta hospes stabat; idem saxum facit quaterque repetito +occumbere, oves novem gestit haerebat frena; qui. Respicit recurvam erat: +pignora hinc reppulit nos **aut**, aptos, ipsa. + +Meae optatos *passa est* Epiros utiliter *Talibus niveis*, hoc lata, edidit. +Dixi ad aestum. + +## Header 2 + +> This is a blockquote following a header. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Header 3 + +``` +This is a code block following a header. +``` + +#### Header 4 + +* This is an unordered list following a header. +* This is an unordered list following a header. +* This is an unordered list following a header. + +##### Header 5 + +1. This is an ordered list following a header. +2. This is an ordered list following a header. +3. This is an ordered list following a header. + +###### Header 6 + +| What | Follows | +|-----------|-----------------| +| A table | A header | +| A table | A header | +| A table | A header | + +---------------- + +There's a horizontal rule above and below this. + +---------------- + +Here is an unordered list: + +* Salt-n-Pepa +* Bel Biv DeVoe +* Kid 'N Play + +And an ordered list: + +1. Michael Jackson +2. Michael Bolton +3. Michael Bublé + +And an unordered task list: + +- [x] Create a sample markdown document +- [x] Add task lists to it +- [ ] Take a vacation + +And a "mixed" task list: + +- [ ] Steal underpants +- ? +- [ ] Profit! + +And a nested list: + +* Jackson 5 + * Michael + * Tito + * Jackie + * Marlon + * Jermaine +* TMNT + * Leonardo + * Michelangelo + * Donatello + * Raphael + +Definition lists can be used with Markdown syntax. Definition terms are bold. + +Name +: Godzilla + +Born +: 1952 + +Birthplace +: Japan + +Color +: Green + + +---------------- + +Tables should have bold headings and alternating shaded rows. + +| Artist | Album | Year | +|-------------------|-----------------|------| +| Michael Jackson | Thriller | 1982 | +| Prince | Purple Rain | 1984 | +| Beastie Boys | License to Ill | 1986 | + +If a table is too wide, it should scroll horizontally. + +| Artist | Album | Year | Label | Awards | Songs | +|-------------------|-----------------|------|-------------|----------|-----------| +| Michael Jackson | Thriller | 1982 | Epic Records | Grammy Award for Album of the Year, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Selling Album, Grammy Award for Best Engineered Album, Non-Classical | Wanna Be Startin' Somethin', Baby Be Mine, The Girl Is Mine, Thriller, Beat It, Billie Jean, Human Nature, P.Y.T. (Pretty Young Thing), The Lady in My Life | +| Prince | Purple Rain | 1984 | Warner Brothers Records | Grammy Award for Best Score Soundtrack for Visual Media, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Soundtrack/Cast Recording, Grammy Award for Best Rock Performance by a Duo or Group with Vocal | Let's Go Crazy, Take Me With U, The Beautiful Ones, Computer Blue, Darling Nikki, When Doves Cry, I Would Die 4 U, Baby I'm a Star, Purple Rain | +| Beastie Boys | License to Ill | 1986 | Mercury Records | noawardsbutthistablecelliswide | Rhymin & Stealin, The New Style, She's Crafty, Posse in Effect, Slow Ride, Girls, (You Gotta) Fight for Your Right, No Sleep Till Brooklyn, Paul Revere, Hold It Now, Hit It, Brass Monkey, Slow and Low, Time to Get Ill | + +---------------- + +Code snippets like `var foo = "bar";` can be shown inline. + +Also, `this should vertically align` ~~`with this`~~ ~~and this~~. + +Code can also be shown in a block element. + +``` +foo := "bar"; +bar := "foo"; +``` + +Code can also use syntax highlighting. + +```go +func main() { + input := `var foo = "bar";` + + lexer := lexers.Get("javascript") + iterator, _ := lexer.Tokenise(nil, input) + style := styles.Get("github") + formatter := html.New(html.WithLineNumbers()) + + var buff bytes.Buffer + formatter.Format(&buff, style, iterator) + + fmt.Println(buff.String()) +} +``` + +``` +Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this. +``` + +Inline code inside table cells should still be distinguishable. + +| Language | Code | +|-------------|--------------------| +| Javascript | `var foo = "bar";` | +| Ruby | `foo = "bar"{` | + +---------------- + +Small images should be shown at their actual size. + +![](https://placekitten.com/g/300/200/) + +Large images should always scale down and fit in the content container. + +![](https://placekitten.com/g/1200/800/) + +## Components + +### Alerts + +{{< alert >}}This is an alert.{{< /alert >}} +{{< alert title="Note:" >}}This is an alert with a title.{{< /alert >}} +{{< alert type="success" >}}This is a successful alert.{{< /alert >}} +{{< alert type="warning" >}}This is a warning!{{< /alert >}} +{{< alert type="warning" title="Warning!" >}}This is a warning with a title!{{< /alert >}} + + +## Sizing + +Add some sections here to see how the ToC looks like. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Parameters available + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Using pixels + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Using rem + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +## Memory + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### RAM to use + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### More is better + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Used RAM + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + + + +``` +This is the final element on the page and there should be no margin below this. +``` diff --git a/content/en/blog/releases/_index.md b/content/en/blog/releases/_index.md new file mode 100644 index 0000000..b1d9eb4 --- /dev/null +++ b/content/en/blog/releases/_index.md @@ -0,0 +1,8 @@ + +--- +title: "New Releases" +linkTitle: "Releases" +weight: 20 +--- + + diff --git a/content/en/blog/releases/in-depth-monoliths-detailed-spec.md b/content/en/blog/releases/in-depth-monoliths-detailed-spec.md new file mode 100755 index 0000000..ba8bd52 --- /dev/null +++ b/content/en/blog/releases/in-depth-monoliths-detailed-spec.md @@ -0,0 +1,245 @@ + +--- +title: "Another Great Release" +linkTitle: "Release New Features" +date: 2018-01-04 +description: > + A short lead description about this content page. Text here can also be **bold** or _italic_ and can even be split over multiple paragraphs. +--- + +Text can be **bold**, _italic_, or ~~strikethrough~~. [Links](https://github.com) should be blue with no underlines (unless hovered over). + +There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. + +There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. + +> There should be no margin above this first sentence. +> +> Blockquotes should be a lighter gray with a border along the left side in the secondary color. +> +> There should be no margin below this final sentence. + +## First Header + +This is a normal paragraph following a header. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + + + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +On big screens, paragraphs and headings should not take up the full container width, but we want tables, code blocks and similar to take the full width. + +Lorem markdownum tuta hospes stabat; idem saxum facit quaterque repetito +occumbere, oves novem gestit haerebat frena; qui. Respicit recurvam erat: +pignora hinc reppulit nos **aut**, aptos, ipsa. + +Meae optatos *passa est* Epiros utiliter *Talibus niveis*, hoc lata, edidit. +Dixi ad aestum. + +## Header 2 + +> This is a blockquote following a header. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Header 3 + +``` +This is a code block following a header. +``` + +#### Header 4 + +* This is an unordered list following a header. +* This is an unordered list following a header. +* This is an unordered list following a header. + +##### Header 5 + +1. This is an ordered list following a header. +2. This is an ordered list following a header. +3. This is an ordered list following a header. + +###### Header 6 + +| What | Follows | +|-----------|-----------------| +| A table | A header | +| A table | A header | +| A table | A header | + +---------------- + +There's a horizontal rule above and below this. + +---------------- + +Here is an unordered list: + +* Salt-n-Pepa +* Bel Biv DeVoe +* Kid 'N Play + +And an ordered list: + +1. Michael Jackson +2. Michael Bolton +3. Michael Bublé + +And an unordered task list: + +- [x] Create a sample markdown document +- [x] Add task lists to it +- [ ] Take a vacation + +And a "mixed" task list: + +- [ ] Steal underpants +- ? +- [ ] Profit! + +And a nested list: + +* Jackson 5 + * Michael + * Tito + * Jackie + * Marlon + * Jermaine +* TMNT + * Leonardo + * Michelangelo + * Donatello + * Raphael + +Definition lists can be used with Markdown syntax. Definition terms are bold. + +Name +: Godzilla + +Born +: 1952 + +Birthplace +: Japan + +Color +: Green + + +---------------- + +Tables should have bold headings and alternating shaded rows. + +| Artist | Album | Year | +|-------------------|-----------------|------| +| Michael Jackson | Thriller | 1982 | +| Prince | Purple Rain | 1984 | +| Beastie Boys | License to Ill | 1986 | + +If a table is too wide, it should scroll horizontally. + +| Artist | Album | Year | Label | Awards | Songs | +|-------------------|-----------------|------|-------------|----------|-----------| +| Michael Jackson | Thriller | 1982 | Epic Records | Grammy Award for Album of the Year, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Selling Album, Grammy Award for Best Engineered Album, Non-Classical | Wanna Be Startin' Somethin', Baby Be Mine, The Girl Is Mine, Thriller, Beat It, Billie Jean, Human Nature, P.Y.T. (Pretty Young Thing), The Lady in My Life | +| Prince | Purple Rain | 1984 | Warner Brothers Records | Grammy Award for Best Score Soundtrack for Visual Media, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Soundtrack/Cast Recording, Grammy Award for Best Rock Performance by a Duo or Group with Vocal | Let's Go Crazy, Take Me With U, The Beautiful Ones, Computer Blue, Darling Nikki, When Doves Cry, I Would Die 4 U, Baby I'm a Star, Purple Rain | +| Beastie Boys | License to Ill | 1986 | Mercury Records | noawardsbutthistablecelliswide | Rhymin & Stealin, The New Style, She's Crafty, Posse in Effect, Slow Ride, Girls, (You Gotta) Fight for Your Right, No Sleep Till Brooklyn, Paul Revere, Hold It Now, Hit It, Brass Monkey, Slow and Low, Time to Get Ill | + +---------------- + +Code snippets like `var foo = "bar";` can be shown inline. + +Also, `this should vertically align` ~~`with this`~~ ~~and this~~. + +Code can also be shown in a block element. + +``` +foo := "bar"; +bar := "foo"; +``` + +Code can also use syntax highlighting. + +```go +func main() { + input := `var foo = "bar";` + + lexer := lexers.Get("javascript") + iterator, _ := lexer.Tokenise(nil, input) + style := styles.Get("github") + formatter := html.New(html.WithLineNumbers()) + + var buff bytes.Buffer + formatter.Format(&buff, style, iterator) + + fmt.Println(buff.String()) +} +``` + +``` +Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this. +``` + +Inline code inside table cells should still be distinguishable. + +| Language | Code | +|-------------|--------------------| +| Javascript | `var foo = "bar";` | +| Ruby | `foo = "bar"{` | + +---------------- + +Small images should be shown at their actual size. + +![](https://placekitten.com/g/300/200/) + +Large images should always scale down and fit in the content container. + +![](https://placekitten.com/g/1200/800/) + +## Components + +### Alerts + +{{< alert >}}This is an alert.{{< /alert >}} +{{< alert title="Note:" >}}This is an alert with a title.{{< /alert >}} +{{< alert type="success" >}}This is a successful alert.{{< /alert >}} +{{< alert type="warning" >}}This is a warning!{{< /alert >}} +{{< alert type="warning" title="Warning!" >}}This is a warning with a title!{{< /alert >}} + + +## Sizing + +Add some sections here to see how the ToC looks like. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Parameters available + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Using pixels + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Using rem + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +## Memory + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### RAM to use + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### More is better + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Used RAM + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + + + +``` +This is the final element on the page and there should be no margin below this. +``` diff --git a/content/en/coolhack3r.svg b/content/en/coolhack3r.svg new file mode 100755 index 0000000..36adc5e --- /dev/null +++ b/content/en/coolhack3r.svg @@ -0,0 +1,2 @@ + + diff --git a/content/en/datactrl.svg b/content/en/datactrl.svg new file mode 100755 index 0000000..62a0482 --- /dev/null +++ b/content/en/datactrl.svg @@ -0,0 +1,2 @@ + + diff --git a/content/en/docs/About us/_index.md b/content/en/docs/About us/_index.md new file mode 100644 index 0000000..f26a3ca --- /dev/null +++ b/content/en/docs/About us/_index.md @@ -0,0 +1,8 @@ +--- +title: "About us" +linkTitle: "About us" +weight: 4 +date: 2022-01-09 +description: > + Who we are, our motivation and policies. +--- \ No newline at end of file diff --git a/content/en/docs/About us/motivation.md b/content/en/docs/About us/motivation.md new file mode 100644 index 0000000..f5cbae0 --- /dev/null +++ b/content/en/docs/About us/motivation.md @@ -0,0 +1,20 @@ +--- +title: "Motivation" +date: 2017-01-05T +weight: 2 +description: > + Why we do it and what we want to achieve. +--- + +Every internet user is forced to use centralized services sacrificing privacy and personal freedoms: +- Accepts incomprehensible licenses +- Endures ads +- Gives his data to unknown person +- End up in a "recommendation bubble". +- Subject to censorship, blocking + +We don't want it that way. We want digital independence and privacy of our data. + +**Our mission is to offer an alternative. Your services - your rules**: +- No license agreements, advertising, surveillance, telemetry, bans and censorship +- Your data is stored on your server and belongs only to you diff --git a/content/en/docs/About us/policy.md b/content/en/docs/About us/policy.md new file mode 100644 index 0000000..75e188f --- /dev/null +++ b/content/en/docs/About us/policy.md @@ -0,0 +1,26 @@ +--- +title: "Policy" +date: 2017-01-05T +weight: 4 +description: > + Our policies and politics. +--- + + Our mission is humanitarian - to realize the right to privacy and confidentiality of anyone who wants it. + + We are not involved in politics, we do not support or belong to political parties, we do not condemn anyone, and we do not participate in conflicts. + +## Privacy Policy + +The mobile app is completely autonomous, it does not download any data from websites, does not contain any trackers, and interacts only with your server. + +The server communicates with your NixOS infrastructure + +The recommended client applications interact only with your server. Exceptions: +- Delta.Chat when using geolocation publishing [forced](https://support.delta.chat/t/tracker-on-android-app/1814) use mapbox +- There are questions about Bitwarden mobile app. It seems there are tracker libs, but the traffic has not analyzed yet, maybe not active. + +## Our web-resources +You leave a lot of your data when you visit any site. At a minimum, IP, at a maximum, all kinds of tracking data. +We **do not use tracking** in any form, on any of our public services. +But **we aggregate access-logging** to understand how many users we have and from what country. All visitor IPs are stored as subnets (x.x.x.0) and may not uniquely identify you. But we recommend to use means of traffic anonymization, as we do not guarantee that our server provider does not collect meta-information. \ No newline at end of file diff --git a/content/en/docs/About us/team.md b/content/en/docs/About us/team.md new file mode 100644 index 0000000..bdd6a81 --- /dev/null +++ b/content/en/docs/About us/team.md @@ -0,0 +1,36 @@ +--- +title: "Team" +date: 2017-01-05T +weight: 3 +description: > + Our team, contributors and like-minded people. +--- + +# 🧑💻 About us + +International team of independent professionals: +- [Zholnay Kirill](https://s.zholnay.name/@kirill) - Founder/CEO/CISO. For more than 15 years builds and protects corporate infrastructure in medium and large companies +- **ilchub** - core-team DevOps, Backend-dev +- **kherel** - core-team Flutter dev +- **nikolai** - QA Engeneer +- and a lot of cool cotributors and [volonteers] + +## 🌠 We get help +- [Roscomsvoboda](https://roskomsvoboda.org/). Speech in Russian [youtube](https://www.youtube.com/watch?v=mdeUTUPeJjA). +- [Privacy Accelerator](https://privacyaccelerator.org/) +- Open Source World Community +- NixOS Community + +## 🫂 Like-minded people +- [Cloudron](https://www.cloudron.io/) - commercial project, code closed, from $15 per month for email and multiple services. You have to install the application yourself on the server, keep an eye on the server resources. +- [IndieWeb](https://indieweb.org/) - it is open-source project, complicated in configuration. +- [Kubenav](https://kubenav.io/) - manages docker containers from mobile. Promising but for highly skilled users. +- [Yunohsot](https://yunohost.org/) - open-source project, but not very stable. +- [FreedomBox](https://freedombox.org) - open source project on ARM +- [Tunrkeylinux](https://turnkeylinux.org) - ready to use software for advanced users + +### Useful +- https://ssd.eff.org +- https://datadetoxkit.org +- https://securityplanner.consumerreports.org/tool +- https://www.fordfoundation.org/work/our-grants/building-institutions-and-networks/cybersecurity-assessment-tool/ \ No newline at end of file diff --git a/content/en/docs/Architecture/_index.md b/content/en/docs/Architecture/_index.md new file mode 100644 index 0000000..8e98fa5 --- /dev/null +++ b/content/en/docs/Architecture/_index.md @@ -0,0 +1,39 @@ +--- +title: "Project architecture" +linkTitle: "Architecture" +weight: 5 +date: 2022-01-09 +description: > + How the project is organized and how it works. +--- + +Yes, you could use kubernetes. But why when immutability is ensured by NixOS? + +**Stack**: [NixOS](https://nixos.org/), python, flutter + +## Mobile app ## +Flutter/Dart was chosen because of the speed and smoothness of the UI and cross-platform. + +## Backend +NixOS + Python. NixOS was chosen because of its reproducibility, python because of its versatility and popularity. + +## Service providers +We do not get paid by any service providers! We are not affiliated with them in any way. We chose them purely for professional reasons. But we do not exclude partnership in the future. + +### Hosting +[Hetzer](https://www.hetzner.com/) was chosen because of low price and acceptable level of service, quality REST API. Wasn't noticed any privacy or data collection issues. + +Candidates: +- Own personal iron server. Our main priority right now. +- A service provider that will provide an API to deploy an iron server. Outside [FVEY](https://en.wikipedia.org/wiki/Five_Eyes) +- OVH +- Scaleway +- DigitalOcean + +There's also free [Oracle Cloud](https://docs.oracle.com/en-us/iaas/Content/FreeTier/freetier_topic-Always_Free_Resources.htm), but where you don't pay, you're usually a commodity. + +### DNS +[Cloudlare](https://cloudflare.com) reliable, free. Probably collects data, otherwise it's hard to explain why proxy other people's traffic for free. In our case we use it only as a DNS-server and do not proxy anything. In the future we will replace it with self-hosted DNS, as soon as we solve the reliability problem. + +### Backup repository +[Backblaze](https://www.backblaze.com/) is free or times cheaper than AWS. Not seen in data collection. [Publishes](https://www.backblaze.com/blog/open-source-data-storage-server/) in open source the hardware it runs on. And also [shares](https://www.backblaze.com/b2/hard-drive-test-data.html) very useful statistics about disk failures, on the basis of which you can choose the most reliable and tested one. In the future, perhaps, we will replace it with a self-hosted or p2p solution. Now it is not the main priority, because the data is encrypted, and the service provider sees only the ip of your server, but not the home one. \ No newline at end of file diff --git a/content/en/docs/Getting started/Backblaze.mp4 b/content/en/docs/Getting started/Backblaze.mp4 new file mode 100644 index 0000000..f942916 Binary files /dev/null and b/content/en/docs/Getting started/Backblaze.mp4 differ diff --git a/content/en/docs/Getting started/_index.md b/content/en/docs/Getting started/_index.md new file mode 100644 index 0000000..d9a508c --- /dev/null +++ b/content/en/docs/Getting started/_index.md @@ -0,0 +1,183 @@ +--- +categories: ["Examples", "Placeholders"] +tags: ["test","docs"] +title: "Getting Started" +linkTitle: "Getting Started" +weight: 1 +description: > + How do you set up SelfPrivacy server? +--- +Установка и настройка +--------------------- + +SelfPrivacy сервер создается поэтапно в течение часа. Звучит страшно, но уверяю, учёная степень не понадобится. Процесс не сложнее покупки в интернет-магазине. + +* Поиск паспорта и карты с балансом $10-15 и $5 в месяц +* Регистрация учётных записей +* Покупка домена +* Подключение домена к DNS серверу +* 🔑 Создание ключей +* Установка +* Подключение к сервисам 🎉 + +**Если поручите кому-нибудь эту задачу — лишитесь приватности.** Для 100% независимости и контроля необходимо делать всё самостоятельно. + + +Регистрация учётных записей +--------------------- + +Для устойчивости и SelfPrivacy требует много учётных записей, не будем доверять все данные одной компании, лучше распределим части системы по разным местам. + +{{% alert title="Защита учётных записей" color="warning" %}} +**Системы взламывают через самое слабое звено.** Чтобы учётные записи не были таким звеном, пароли должны быть разными для каждой учетной записи и сложными. ```MamaMilaRamu```, как ни странно, плохой пароль. Пример хорошего пароля - это парольная фраза: + +```expert repose postwar anytime glimpse freestyle liability effects``` + +или + +```}Rj;EtG:,M!bc4/|``` + +Как такой пароль запомнить? Никак! Пароли не нужно запоминать, их надо создавать и хранить в [менеджере паролей](https://keepassxc.org/download/). Хотя один помнить придётся — пароль от менеджера паролей. + +{{% /alert %}} + + +##### Регистрируемся: +* [Hetzner](https://www.hetzner.com) или [DigitalOcean](https://www.digitalocean.com) — хостинги виртуальных серверов. Какой выберете, в том и будут жить ваши данные и сервисы SelfPrivacy. +* [NameCheap](https://www.namecheap.com/), [Porkbun](https://porkbun.com) или любой другой регистратор, для покупки личного адреса в интернете — домена, который будет указывать на сервер. +* [CloudFlare](https://cloudflare.com) — DNS сервер, где работает ваш домен. +* [Backblaze](https://www.backblaze.com/) — IaaS провайдер, для бесплатного хранения резервных копий ваших данных в зашифрованном виде. + +Регистрация заурядна, но иногда проверка учётной записи длится несколько дней или требует дополнительных документов. Поэтому используйте настоящие документы и заполняйте всё аккуратно. Провайдеры так защищаются от спамеров, ничего личного) + +**Обязательно включите дополнительную защиту учётных записей — второй фактор (MFA, 2FA).** Без этого простого шага ваши данные не будут в безопасности. + +Я знаю, было сложно, но теперь ваши данные защищены лучше, чем у 95% пользователей. Можете собой гордиться! Я вот вами уже горжусь 🤗 + + +Покупка домена +--------------------- + +Включили второй фактор? Я серьёзно! Тогда переходим к интересному! + +**_Домен_ — это кусочек интернета, которому вы даёте имя.** Простор для творчества огромен, у вас есть 63 символа + .com .org .icu и еще несколько сотен доменов после точки. Можно выбрать просто по фамилии, например *ivanov.live* или *ivanov.health*, а можно и что-то творческое — *shit-happens.shop* + +А теперь давайте купим домен, на примере https://www.namecheap.com +*тут видос* +![gif](/images/screencasts/nc-buy-domain.gif) + +###### Рекомендации: +* **Обязательно смотреть на цену ежегодного продления,** она может в разы превышать стоимость покупки. +* **Нормальная цена домена $8-10 в год.** Самые дешёвые — китайские .icu и .cyou — $4-6. +* **При регистрации домена обязательно указывать реальные почту и телефон, иначе регистрацию могут аннулировать.** И если вы не сможете продлить домен, система не будет работать так, как задумано. +* Выбирайте хорошее имя, которое удобно и по телефону диктовать, и на деловой визитке указать. +* Я уже говорил про второй фактор? + + +Подключение домена к DNS серверу +--------------------- + +После покупки, домен добавляем в CloudFlare: + +*тут видос* + +![gif](/images/screencasts/add-domain-to-cf.gif) + +На примере домена ruleit.stream мы выбрали бесплатный тариф и получили имена серверов: **gail.ns.cloudflare.com** и **mattns.cloudflare.com**, которые надо прописать у своего регистратора. В нашем случае NameCheap: + +*тут видос* + +![gif](/images/screencasts/nc-to-cf.gif) + +Заодно проверяем, что у нас включено автопродление и защита персональных данных — WhoisGuard. Через несколько минут или, в худшем случае, до 2-ух суток настройки применятся. + + +🔑 Создание ключей +------------------ + +**_API ключи_ — это почти то же самое, что и логин с паролем, только для программы, а не человека.** Мобильное приложение SelfPrivacy с их помощью управляет сервисами во всех учётных записях вместо вас. Удобно! + +#### Как получить Cloudflare API Token + +![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif) +*сюда новый видос* + +1. Переходим по [ссылке](https://dash.cloudflare.com/) и авторизуемся в ранее созданном аккаунте. + +2. В правом верхнем углу кликаем на иконку профиля (для мобильной версии сайта: в верхнем левом углу нажимаем кнопку **Меню** с тремя горизонтальными полосками). В выпавшем меню кликаем на пункт **My Profile**. + +![My profile](resource:assets/images/pics/myprofile.png) +*сюда картинку отсюда https://git.selfprivacy.org/kherel/selfprivacy.org.app/src/branch/master/assets/images/pics/myprofile.png* + +3. Нам предлагается на выбор, четыре категории настройки: **Preferences**, **Authentication**, **API Tokens**, **Sessions**. Выбираем **API Tokens**. + +4. Самым первым пунктом видим кнопку **Create Token**. С полной уверенностью в себе и желанием обрести приватность, нажимаем на неё. + +5. Спускаемся в самый низ и видим поле **Create Custom Token** и кнопку **Get Started** с правой стороны. Нажимаем. + +6. В поле **Token Name** даём своему токену имя. Можете покреативить и отнестись к этому как к наименованию домашнего зверька :) + +7. Далее, у нас **Permissions**. В первом поле выбираем **Zone**. Во втором поле, по центру, выбираем **DNS**. В последнем поле выбираем **Edit**. + +8. Нажимаем на синюю надпись снизу **+ Add more** (сразу же под левым полем которое мы заполняли ранее). Вуаля, у нас появились новые поля. Заполняем по аналогии с предыдущим пунктом, в первом поле выбираем **Zone**, во-втором тоже **Zone**. А уже в третьем нажимаем на **Read**. Давайте сверим с тем, что у вас получилось: + +![Permissions](resource:assets/images/pics/permissions.png) +*сюда картинку отсюда https://git.selfprivacy.org/kherel/selfprivacy.org.app/src/branch/master/assets/images/pics/permissions.png* + +8. Далее смотрим на **Zone Resources**. Под этой надписью есть строка с двумя полями. В первом должно быть **Include**, а во втором — **Specific Zone**. Как только Вы выберите **Specific Zone**, справа появится ещё одно поле. В нём выбираем наш домен. + +9. Листаем в самый низ и нажимаем на синюю кнопку **Continue to Summary**. + +10. Проверяем, всё ли мы правильно выбрали. Должна присутствовать подобная строка: ваш.домен — **DNS:Edit, Zone:Read**. + +11. Нажимаем **Create Token**. + +12. Копируем созданный токен. + + +Hetzner +------------- + +![gif](/images/screencasts/Hetzner.gif) + +1. Переходим по [ссылке](https://console.hetzner.cloud/) и авторизуемся в ранее созданном аккаунте. + +3. Заходим в созданный нами проект. Если такового нет — значит создаём. + +4. *Наводим мышкой на боковую панель.* Она должна раскрыться, показав нам пункты меню. Нас интересует последний — **Security** (с иконкой ключика). + +5. Далее, в верхней части интерфейса видим примерно такой список: **SSH KEYS, API TOKENS, CERTIFICATES, MEMBERS.** Нам нужен **API TOKENS**. Переходим по нему. + +7. По середине в интерфейсе, нас будет ожидать кнопка **GENERATE API TOKEN**. Нажимаем на эту кнопку. + +8. В поле **Description** даём нашему токену название (это может быть любое название, которое Вам нравится, сути оно не меняет). + +9. Под полем **Description** видим возможность выбрать разрешения **PERMISSIONS**. Выбираем **Read & Write**. + +10. Нажимаем **GENERATE API TOKEN**. + +11. После этого, появиться окно с вашим ключём. + + +Backblaze +------------- + +
+ Video manual + {{< video src="Backblaze" muted="true" autoplay="true" autoplay="true" loop="true" >}} + +
+ + +1. Переходим по [ссылке](https://secure.backblaze.com/user_overview.htm) и авторизуемся в ранее созданном аккаунте. + +2. В левой части интерфейса выбираем **App Keys** в подкатегории **Account** + +3. Нажимаем на синюю кнопку **Generate New Master Application Key** + +4. Во всплывающем окне подтверждаем генерацию + +5. Копируем _keyID_ и _applicationKey_ + + +### 🎉 Поздравляю! Теперь Вы готовы использовать приватные сервисы. \ No newline at end of file diff --git a/content/en/docs/Overview/_index.md b/content/en/docs/Overview/_index.md new file mode 100644 index 0000000..345e95b --- /dev/null +++ b/content/en/docs/Overview/_index.md @@ -0,0 +1,38 @@ +--- +title: "Overview" +linkTitle: "Overview" +weight: 2 +description: > + Here's where your user finds out if your project is for them. +--- + +{{% pageinfo %}} +This is a placeholder page that shows you how to use this template site. +{{% /pageinfo %}} + + +The Overview is where your users find out about your project. Depending on the size of your docset, you can have a separate overview page (like this one) or put your overview contents in the Documentation landing page (like in the Docsy User Guide). + +Try answering these questions for your user in this page: + +## What is it? + +Introduce your project, including what it does or lets you do, why you would use it, and its primary goal (and how it achieves it). This should be similar to your README description, though you can go into a little more detail here if you want. + +## Why do I want it? + +Help your user know if your project will help them. Useful information can include: + +* **What is it good for?**: What types of problems does your project solve? What are the benefits of using it? + +* **What is it not good for?**: For example, point out situations that might intuitively seem suited for your project, but aren't for some reason. Also mention known limitations, scaling issues, or anything else that might let your users know if the project is not for them. + +* **What is it *not yet* good for?**: Highlight any useful features that are coming soon. + +## Where should I go next? + +Give your users next steps from the Overview. For example: + +* [Getting Started](/docs/getting-started/): Get started with $project +* [Examples](/docs/examples/): Check out some example code! + diff --git a/content/en/docs/Services/_index.md b/content/en/docs/Services/_index.md new file mode 100644 index 0000000..e74ba6c --- /dev/null +++ b/content/en/docs/Services/_index.md @@ -0,0 +1,8 @@ +--- +title: "Available services" +linkTitle: "Services" +weight: 3 +date: 2022-01-09 +description: > + What services are available and how to use them. +--- diff --git a/content/en/docs/Services/bitwarden.md b/content/en/docs/Services/bitwarden.md new file mode 100644 index 0000000..686559c --- /dev/null +++ b/content/en/docs/Services/bitwarden.md @@ -0,0 +1,7 @@ +--- +title: "Bitwarden" +date: 2023-01-11T18:09:37+03:00 +description: > + Bitwarden is a self-hosted password manager. +--- + diff --git a/content/en/docs/Services/delta-chat.md b/content/en/docs/Services/delta-chat.md new file mode 100644 index 0000000..236635c --- /dev/null +++ b/content/en/docs/Services/delta-chat.md @@ -0,0 +1,28 @@ +--- +title: "Delta Chat" +date: 2023-01-11T17:15:31+03:00 +description: > + Delta Chat is an encrypted messaging app that uses email as transport. +--- + + +Messengers like Telegram, Signal, Whatsapp can't be private due to the peculiarities of architecture - centralization. And peer-to-peer (p2p) services like tox consume too many resources and are inconvenient to use on a mobile device. The best solution is to use **our own** server. +- **Delta.Chat** - uses your personal email server +- Matrix - promising development, will be added to SelfPrivacy after stabilization. +- XMPP/IRC - great candidates, will probably be added to SelfPrivacy later. +- Rocket.Chat, Zulip, Mattermost - no convenient way to communicate between servers. + +## Typical data leaks when using alien servers +1. IP once per minute. Helps determine your location: at home, away from home, at work. +2. The content of your messages. +3. Meta-information: with whom and when you communicated, even if you use encryption. + +## Features of Delta.Chat + +- Regular email client with all the features of IM. +- Reliable end-to-end encryption (e2e), provided a personal [email server]({{< ref "email.md" >}}) is used by both interlocutors or a personal key exchange, such as via QR code. +- Can use any email server, but then you lose control over the meta-information and [risk](https://s.zholnay.name/@kirill/106351532683026396) key-swapping [man-in-the-middle attack](https://en.wikipedia.org/wiki/Man-in-the-middle_attack). +- Slightly slower than usual messengers +- First message is not encrypted because public encryption keys are sent with it. +- There are problems with sending files > 5-7MB. +- There are no convenient channels. We recommend using [decentralized social network]({{< ref "pleroma.md" >}}) diff --git a/content/en/docs/Services/email.md b/content/en/docs/Services/email.md new file mode 100644 index 0000000..f5c9a9f --- /dev/null +++ b/content/en/docs/Services/email.md @@ -0,0 +1,58 @@ +--- +title: "E-mail" +date: 2023-01-11T17:10:29+03:00 +description: > + Self-hosted e-mail service. +--- + +## Authentication + +Users from the "users" tab of your app are used. + +### Connection configuration + +Login must the username with the domain. For example, `user@domain.tld`. + +#### SMTP +SMTP Server: `your domain` + +SMTP Port: 587 + +Authentication: STARTLS + +#### IMAP + +IMAP Server: `your domain` + +IMAP Port: 143 + +Authentication: STARTLS + + +## Alias to addresses. +Messages for `user+alias@domain.com` will come to `user@domain.com`. + +## Filter directories +The message for `user-dir@domain.com` will create a `dir` directory in the `user@domain.com` mailbox. All mail for `user-dir@domain.com` will arrive in the `dir` directory. + +## Web interface + +It may seem undeveloped or outdated to some. But it has the advantage of simplicity and small amount of code and bugs, which increases [security.md] and [privacy.md]. But it is better to use email clients and disable the web interface in SelfPrivacy App. This will reduce the attack surface and the risks of hacking. + +## Recommended email clients + +- Mozilla Thunderbird +- FairEmail (Android) +- ? (iOS) +- ? (PinePhone) + +## Tips +- Email [over 50 years old](https://habr.com/ru/company/timeweb/blog/580830/). In IT, it's a sign of technology maturity and reliability. +- Email, the most popular way to get infected with viruses, after installing them yourself with unlicensed software and cracks. +- Beware of phishing, it can rob you of your savings and control over your digital life. +- Create filter directories for different purposes. This will help protect [against phishing](https://cisomag.eccouncil.org/last-11-email-accounts/) and cluttering your inbox. Examples: + - `user-w@domain.com` - for registering with web services + - `user-shops` - for web-stores + - `user-pay` - payment systems + - `user-forum` - forum notifications +- Use aliases for questionable services or one-time needs, such as `user+tmp@domain.com`. By aliases convenient to filter and mass delete mails. It is also convenient to find out exactly where your mail was leaked from. diff --git a/content/en/docs/Services/gitea.md b/content/en/docs/Services/gitea.md new file mode 100644 index 0000000..618dc10 --- /dev/null +++ b/content/en/docs/Services/gitea.md @@ -0,0 +1,7 @@ +--- +title: "Gitea" +date: 2023-01-11T18:09:12+03:00 +description: > + Gitea is a self-hosted Git service. +--- + diff --git a/content/en/docs/Services/nextcloud.md b/content/en/docs/Services/nextcloud.md new file mode 100644 index 0000000..80a8e95 --- /dev/null +++ b/content/en/docs/Services/nextcloud.md @@ -0,0 +1,11 @@ +--- +title: "Nextcloud" +date: 2023-01-11T17:08:23+03:00 +description: > + Nextcloud is a self-hosted file sharing and collaboration platform. +--- + +# Authentication + +When creating a server, `admin` Nextcloud user is created with the password you've used for +your primary user. diff --git a/content/en/docs/Services/pleroma.md b/content/en/docs/Services/pleroma.md new file mode 100644 index 0000000..c5a0059 --- /dev/null +++ b/content/en/docs/Services/pleroma.md @@ -0,0 +1,27 @@ +--- +title: "Pleroma" +date: 2023-01-11T17:17:40+03:00 +description: > + Pleroma is a self-hosted microblogging platform. +--- + + +_Substitute to: Twitter_ + +_Alternative to: Mastodon, Frendica_ + +Any centralized social network will have to take care of moderation, censorship, +implementation of rules, reading your correspondence as it grows. +Another thing is your own social network, which can only belong to you, +your family or your team. Only a decentralized network can provide maximum privacy. +That's why we offer you to become part of the decentralized network Fediverse. +At SelfPrivacy we use Pleroma. + +## Typical data leaks when using other people's servers +1. IP once per minute. Helps determine your location: at home, away from home, at work. +2. The content of your messages. +3. Meta-information: with whom and when communicated. + +## Features of Pleroma. +- Social network of any scale: from personal server with only one account to thematic. +- Your social network, your rules. You are censor, moderator and administrator. diff --git a/content/en/docs/_index.md b/content/en/docs/_index.md new file mode 100755 index 0000000..d5ec96a --- /dev/null +++ b/content/en/docs/_index.md @@ -0,0 +1,24 @@ + +--- +title: "Documentation" +linkTitle: "Documentation" +weight: 20 +menu: + main: + weight: 20 +--- + +{{% pageinfo %}} +This is a placeholder page that shows you how to use this template site. +{{% /pageinfo %}} + + +This section is where the user documentation for your project lives - all the information your users need to understand and successfully use your project. + +For large documentation sets we recommend adding content under the headings in this section, though if some or all of them don’t apply to your project feel free to remove them or add your own. You can see an example of a smaller Docsy documentation site in the [Docsy User Guide](https://docsy.dev/docs/), which lives in the [Docsy theme repo](https://github.com/google/docsy/tree/master/userguide) if you'd like to copy its docs section. + +Other content such as marketing material, case studies, and community updates should live in the [About](/about/) and [Community](/community/) pages. + +Find out how to use the Docsy theme in the [Docsy User Guide](https://docsy.dev/docs/). You can learn more about how to organize your documentation (and how we organized this site) in [Organizing Your Content](https://docsy.dev/docs/best-practices/organizing-content/). + + diff --git a/content/en/download/_index.html b/content/en/download/_index.html new file mode 100644 index 0000000..65e462a --- /dev/null +++ b/content/en/download/_index.html @@ -0,0 +1,94 @@ +--- +title: Downloads +--- + + + +{{< blocks/lead >}} +
+

Downloads

+
+ +

+ Get the latest version of SelfPrivacy app for your operating system. +

+ +{{< /blocks/lead >}} + +{{< blocks/section color="white" type="section" >}} + +
+

Android

+
+ +
+ + + + +
+ + +{{< /blocks/section >}} + +{{< blocks/section color="white" type="section" >}} +
+

iOS

+
+ +
+

Coming soon

+
+ +{{< /blocks/section >}} + +{{< blocks/section type="section" color="dark" >}} +
+

Desktop

+
+ +
+ + + +
+ +{{< /blocks/section >}} + +{{< blocks/section type="section" >}} + + {{< landing-feature book "What to do next?" "right" >}} + }}"> + Setup guide + + {{< /landing-feature >}} + +{{< /blocks/section >}} diff --git a/content/en/featured-background.jpg b/content/en/featured-background.jpg new file mode 100644 index 0000000..7476923 Binary files /dev/null and b/content/en/featured-background.jpg differ diff --git a/content/en/hero-image.png b/content/en/hero-image.png new file mode 100644 index 0000000..51186ab Binary files /dev/null and b/content/en/hero-image.png differ diff --git a/content/en/privacy.svg b/content/en/privacy.svg new file mode 100755 index 0000000..2485db4 --- /dev/null +++ b/content/en/privacy.svg @@ -0,0 +1,2 @@ + + diff --git a/content/en/search.md b/content/en/search.md new file mode 100644 index 0000000..e3690fd --- /dev/null +++ b/content/en/search.md @@ -0,0 +1,6 @@ +--- +title: Search Results +layout: search + +--- + diff --git a/content/en/security.svg b/content/en/security.svg new file mode 100755 index 0000000..f4810be --- /dev/null +++ b/content/en/security.svg @@ -0,0 +1,2 @@ + + diff --git a/content/en/simplicity.svg b/content/en/simplicity.svg new file mode 100755 index 0000000..d0cd422 --- /dev/null +++ b/content/en/simplicity.svg @@ -0,0 +1,2 @@ + + diff --git a/content/en/smartphonecomparison.svg b/content/en/smartphonecomparison.svg new file mode 100755 index 0000000..36fb559 --- /dev/null +++ b/content/en/smartphonecomparison.svg @@ -0,0 +1,2 @@ + + diff --git a/content/en/thisisfine.svg b/content/en/thisisfine.svg new file mode 100755 index 0000000..5463945 --- /dev/null +++ b/content/en/thisisfine.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/content/en/zerotrust.svg b/content/en/zerotrust.svg new file mode 100755 index 0000000..4d05618 --- /dev/null +++ b/content/en/zerotrust.svg @@ -0,0 +1,97 @@ + + diff --git a/content/privacy-policy.md b/content/privacy-policy.md deleted file mode 100644 index f69d9ce..0000000 --- a/content/privacy-policy.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Privacy Policy -images: ["brand.png"] ---- -

-Thank you for considering our application. We value your privacy and are committed to protecting it. -

-

-This privacy policy explains how we collect, use, and share information about you when you use our application. Please read this policy carefully before using our application. By using our application, you agree to the collection, use, and sharing of your information as described in this policy. -

-

-We may collect your IP address when you use our application. We may use your IP address to personalize your experience, troubleshoot technical issues, and to protect the security of our application. -

-

-We will not share your IP address with third parties without your consent, except as required by law or to protect the rights, property, or safety of our application or others. -

-

-We may update this privacy policy from time to time. We encourage you to review the privacy policy periodically to stay informed about how we are protecting the information we collect. -

-

-If you have any questions or concerns about our privacy policy, please contact us. -

diff --git a/content/ru/_index.html b/content/ru/_index.html new file mode 100644 index 0000000..d56f5fa --- /dev/null +++ b/content/ru/_index.html @@ -0,0 +1,180 @@ ++++ +title = "SelfPrivacy" +linkTitle = "SelfPrivacy" + ++++ + +{{< blocks/section color="dark" type="section" >}} +
+
+
+ +
+
+
+
+

+ SelfPrivacy app allows you to set up self-hosted services and manage them. +

+ }}"> + Download + +
+
+
+{{< /blocks/section >}} + +{{< blocks/section color="white" type="section" >}} +
+

Your personal services

+
+ +
+

For serious business

+
+ +
+
+ {{< landing-service "/images/services/email.svg" "E-mail" >}} +

Unlimited mailboxes amount for a company or family.

+ {{< /landing-service >}} +
+ +
+ {{< landing-service "/images/services/nextcloud.svg" "Cloud storage" >}} +

Nextcloud is a private and functional replacement for Dropbox and G-drive.

+ {{< /landing-service >}} +
+ +
+ {{< landing-service "/images/services/gitea.svg" "Git repository" >}} +

Gitea is an excellent analogue of Github, which belongs to you, not Microsoft.

+ {{< /landing-service >}} +
+
+ +
+

For entertainment and communication

+
+ +
+
+ {{< landing-service "/images/services/deltachat.svg" "Messenger" >}} +

The most private messenger is the one with the server part located on your personal server. That's what makes DeltaChat more private than Telegram and Signal.

+ {{< /landing-service >}} +
+ +
+ {{< landing-service "/images/services/pleroma.svg" "Decentralized social network" >}} +

Pleroma is a social network where you decide who to block and what to publish. No more advertising and surveillance.

+ {{< /landing-service >}} +
+ +
+ {{< landing-service "/images/services/jitsi.svg" "Videomeet" >}} +

Zoom and Google-meet are no longer needed when there is a Jitsi-meet. Very simple and convenient video conferencing solution.

+ {{< /landing-service >}} +
+
+ + +
+

For a good life

+
+ +
+
+ {{< landing-service "/images/services/openconnect.svg" "VPN for all of your friends and relatives devices" >}} +

No public VPN can be private, just those one which is on your server. OpenConnect — connect an unlimited number of devices.

+ {{< /landing-service >}} +
+ +
+ {{< landing-service "/images/services/bitwarden.svg" "Password Manager" >}} +

Passwords no longer need to be remembered, copied between devices, invented or entered manually.

+

Bitwarden is a trusted password manager for all devices.

+ {{< /landing-service >}} +
+
+{{< /blocks/section >}} + +{{< blocks/section color="white" type="section" >}} +
+

Advantages

+
+ + {{< landing-feature privacy "Privacy" >}} +

No registration, cookies or telemetry.

+ {{< /landing-feature >}} + + {{< landing-feature zerotrust "Zero trust" "right">}} +

SelfPrivacy is developed on the «zero trust» principle, even in relation to SelfPrivacy developers. That means you're the sole owner of your data.

+ {{< /landing-feature >}} + + {{< landing-feature security "Security">}} +

Open source. The $2,000 reward for RCE vulnerability significantly increases security compared to conventional self-hosted solutions.

+ {{< /landing-feature >}} + + {{< landing-feature simplicity "Simplicity" "right">}} +

It is simple. Without console, complicated instructions, monitoring and involvement of specialists.

+ {{< /landing-feature >}} + + {{< landing-feature arrow "No license agreements">}} +

What is written in the license agreements that you accept without reading? It says that you allow companies to do anything with your data. SelfPrivacy has no license agreements.

+ {{< /landing-feature >}} + + {{< landing-feature coolhack3r "Save your time and money" "right">}} +

How to save $500 or two weeks of your life? Will it take the same time and money for a specialist to set everything up from scratch?

+

SelfPrivacy team works continuously to speed up and simplify this process to a few clicks.

+

Now anyone will be capable to set up their own data center.

+ {{< /landing-feature >}} + + {{< landing-feature thisisfine "Functionality">}} +

Your data will not be lost thanks to regular automatic backups to a separate data center.

+ {{< /landing-feature >}} + + {{< landing-feature smartphonecomparison "Independence" "right">}} +

Your communications on the internet no longer depend on Google, Facebook, Amazon and others E-Corps.

+

Your services, your rules! You will not be blocked or disabled, accidentally or for any other reason. Your infrastructure and data will always remain with you.

+ {{< /landing-feature >}} + + {{< landing-feature datactrl "Data control">}} +

Why do corporations need your data? To make you buy more and vote as they want. With SelfPrivacy, only you have your data.

+ {{< /landing-feature >}} + +{{< /blocks/section >}} + + diff --git a/content/ru/arrow.svg b/content/ru/arrow.svg new file mode 100755 index 0000000..2e650ef --- /dev/null +++ b/content/ru/arrow.svg @@ -0,0 +1,2 @@ + + diff --git a/content/ru/blog/_index.md b/content/ru/blog/_index.md new file mode 100644 index 0000000..43820eb --- /dev/null +++ b/content/ru/blog/_index.md @@ -0,0 +1,13 @@ +--- +title: "Docsy Blog" +linkTitle: "Blog" +menu: + main: + weight: 30 +--- + + +This is the **blog** section. It has two categories: News and Releases. + +Files in these directories will be listed in reverse chronological order. + diff --git a/content/ru/blog/news/_index.md b/content/ru/blog/news/_index.md new file mode 100644 index 0000000..13d25ea --- /dev/null +++ b/content/ru/blog/news/_index.md @@ -0,0 +1,8 @@ + +--- +title: "News About Docsy" +linkTitle: "News" +weight: 20 +--- + + diff --git a/content/ru/blog/news/first-post/featured-sunset-get.png b/content/ru/blog/news/first-post/featured-sunset-get.png new file mode 100644 index 0000000..db3373c Binary files /dev/null and b/content/ru/blog/news/first-post/featured-sunset-get.png differ diff --git a/content/ru/blog/news/first-post/index.md b/content/ru/blog/news/first-post/index.md new file mode 100644 index 0000000..b6bfb47 --- /dev/null +++ b/content/ru/blog/news/first-post/index.md @@ -0,0 +1,46 @@ +--- +date: 2018-10-06 +title: "Easy documentation with Docsy" +linkTitle: "Announcing Docsy" +description: "The Docsy Hugo theme lets project maintainers and contributors focus on content, not on reinventing a website infrastructure from scratch" +author: Riona MacNamara ([@rionam](https://twitter.com/bepsays)) +resources: +- src: "**.{png,jpg}" + title: "Image #:counter" + params: + byline: "Photo: Riona MacNamara / CC-BY-CA" +--- + +**This is a typical blog post that includes images.** + +The front matter specifies the date of the blog post, its title, a short description that will be displayed on the blog landing page, and its author. + +## Including images + +Here's an image (`featured-sunset-get.png`) that includes a byline and a caption. + +{{< imgproc sunset Fill "600x300" >}} +Fetch and scale an image in the upcoming Hugo 0.43. +{{< /imgproc >}} + +The front matter of this post specifies properties to be assigned to all image resources: + +``` +resources: +- src: "**.{png,jpg}" + title: "Image #:counter" + params: + byline: "Photo: Riona MacNamara / CC-BY-CA" +``` + +To include the image in a page, specify its details like this: + +``` +{{< imgproc sunset Fill "600x300" >}} +Fetch and scale an image in the upcoming Hugo 0.43. +{{< /imgproc >}} +``` + +The image will be rendered at the size and byline specified in the front matter. + + diff --git a/content/ru/blog/news/second-post.md b/content/ru/blog/news/second-post.md new file mode 100755 index 0000000..0ef58d7 --- /dev/null +++ b/content/ru/blog/news/second-post.md @@ -0,0 +1,245 @@ + +--- +title: "The second blog post" +linkTitle: "Second blog post" +date: 2018-10-06 +description: > + A short lead description about this content page. Text here can also be **bold** or _italic_ and can even be split over multiple paragraphs. +--- + +Text can be **bold**, _italic_, or ~~strikethrough~~. [Links](https://github.com) should be blue with no underlines (unless hovered over). + +There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. + +There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. + +> There should be no margin above this first sentence. +> +> Blockquotes should be a lighter gray with a border along the left side in the secondary color. +> +> There should be no margin below this final sentence. + +## First Header + +This is a normal paragraph following a header. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + + + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +On big screens, paragraphs and headings should not take up the full container width, but we want tables, code blocks and similar to take the full width. + +Lorem markdownum tuta hospes stabat; idem saxum facit quaterque repetito +occumbere, oves novem gestit haerebat frena; qui. Respicit recurvam erat: +pignora hinc reppulit nos **aut**, aptos, ipsa. + +Meae optatos *passa est* Epiros utiliter *Talibus niveis*, hoc lata, edidit. +Dixi ad aestum. + +## Header 2 + +> This is a blockquote following a header. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Header 3 + +``` +This is a code block following a header. +``` + +#### Header 4 + +* This is an unordered list following a header. +* This is an unordered list following a header. +* This is an unordered list following a header. + +##### Header 5 + +1. This is an ordered list following a header. +2. This is an ordered list following a header. +3. This is an ordered list following a header. + +###### Header 6 + +| What | Follows | +|-----------|-----------------| +| A table | A header | +| A table | A header | +| A table | A header | + +---------------- + +There's a horizontal rule above and below this. + +---------------- + +Here is an unordered list: + +* Salt-n-Pepa +* Bel Biv DeVoe +* Kid 'N Play + +And an ordered list: + +1. Michael Jackson +2. Michael Bolton +3. Michael Bublé + +And an unordered task list: + +- [x] Create a sample markdown document +- [x] Add task lists to it +- [ ] Take a vacation + +And a "mixed" task list: + +- [ ] Steal underpants +- ? +- [ ] Profit! + +And a nested list: + +* Jackson 5 + * Michael + * Tito + * Jackie + * Marlon + * Jermaine +* TMNT + * Leonardo + * Michelangelo + * Donatello + * Raphael + +Definition lists can be used with Markdown syntax. Definition terms are bold. + +Name +: Godzilla + +Born +: 1952 + +Birthplace +: Japan + +Color +: Green + + +---------------- + +Tables should have bold headings and alternating shaded rows. + +| Artist | Album | Year | +|-------------------|-----------------|------| +| Michael Jackson | Thriller | 1982 | +| Prince | Purple Rain | 1984 | +| Beastie Boys | License to Ill | 1986 | + +If a table is too wide, it should scroll horizontally. + +| Artist | Album | Year | Label | Awards | Songs | +|-------------------|-----------------|------|-------------|----------|-----------| +| Michael Jackson | Thriller | 1982 | Epic Records | Grammy Award for Album of the Year, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Selling Album, Grammy Award for Best Engineered Album, Non-Classical | Wanna Be Startin' Somethin', Baby Be Mine, The Girl Is Mine, Thriller, Beat It, Billie Jean, Human Nature, P.Y.T. (Pretty Young Thing), The Lady in My Life | +| Prince | Purple Rain | 1984 | Warner Brothers Records | Grammy Award for Best Score Soundtrack for Visual Media, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Soundtrack/Cast Recording, Grammy Award for Best Rock Performance by a Duo or Group with Vocal | Let's Go Crazy, Take Me With U, The Beautiful Ones, Computer Blue, Darling Nikki, When Doves Cry, I Would Die 4 U, Baby I'm a Star, Purple Rain | +| Beastie Boys | License to Ill | 1986 | Mercury Records | noawardsbutthistablecelliswide | Rhymin & Stealin, The New Style, She's Crafty, Posse in Effect, Slow Ride, Girls, (You Gotta) Fight for Your Right, No Sleep Till Brooklyn, Paul Revere, Hold It Now, Hit It, Brass Monkey, Slow and Low, Time to Get Ill | + +---------------- + +Code snippets like `var foo = "bar";` can be shown inline. + +Also, `this should vertically align` ~~`with this`~~ ~~and this~~. + +Code can also be shown in a block element. + +``` +foo := "bar"; +bar := "foo"; +``` + +Code can also use syntax highlighting. + +```go +func main() { + input := `var foo = "bar";` + + lexer := lexers.Get("javascript") + iterator, _ := lexer.Tokenise(nil, input) + style := styles.Get("github") + formatter := html.New(html.WithLineNumbers()) + + var buff bytes.Buffer + formatter.Format(&buff, style, iterator) + + fmt.Println(buff.String()) +} +``` + +``` +Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this. +``` + +Inline code inside table cells should still be distinguishable. + +| Language | Code | +|-------------|--------------------| +| Javascript | `var foo = "bar";` | +| Ruby | `foo = "bar"{` | + +---------------- + +Small images should be shown at their actual size. + +![](https://placekitten.com/g/300/200/) + +Large images should always scale down and fit in the content container. + +![](https://placekitten.com/g/1200/800/) + +## Components + +### Alerts + +{{< alert >}}This is an alert.{{< /alert >}} +{{< alert title="Note:" >}}This is an alert with a title.{{< /alert >}} +{{< alert type="success" >}}This is a successful alert.{{< /alert >}} +{{< alert type="warning" >}}This is a warning!{{< /alert >}} +{{< alert type="warning" title="Warning!" >}}This is a warning with a title!{{< /alert >}} + + +## Sizing + +Add some sections here to see how the ToC looks like. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Parameters available + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Using pixels + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Using rem + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +## Memory + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### RAM to use + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### More is better + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Used RAM + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + + + +``` +This is the final element on the page and there should be no margin below this. +``` diff --git a/content/ru/blog/releases/_index.md b/content/ru/blog/releases/_index.md new file mode 100644 index 0000000..b1d9eb4 --- /dev/null +++ b/content/ru/blog/releases/_index.md @@ -0,0 +1,8 @@ + +--- +title: "New Releases" +linkTitle: "Releases" +weight: 20 +--- + + diff --git a/content/ru/blog/releases/in-depth-monoliths-detailed-spec.md b/content/ru/blog/releases/in-depth-monoliths-detailed-spec.md new file mode 100755 index 0000000..ba8bd52 --- /dev/null +++ b/content/ru/blog/releases/in-depth-monoliths-detailed-spec.md @@ -0,0 +1,245 @@ + +--- +title: "Another Great Release" +linkTitle: "Release New Features" +date: 2018-01-04 +description: > + A short lead description about this content page. Text here can also be **bold** or _italic_ and can even be split over multiple paragraphs. +--- + +Text can be **bold**, _italic_, or ~~strikethrough~~. [Links](https://github.com) should be blue with no underlines (unless hovered over). + +There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. + +There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. There should be whitespace between paragraphs. + +> There should be no margin above this first sentence. +> +> Blockquotes should be a lighter gray with a border along the left side in the secondary color. +> +> There should be no margin below this final sentence. + +## First Header + +This is a normal paragraph following a header. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + + + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +On big screens, paragraphs and headings should not take up the full container width, but we want tables, code blocks and similar to take the full width. + +Lorem markdownum tuta hospes stabat; idem saxum facit quaterque repetito +occumbere, oves novem gestit haerebat frena; qui. Respicit recurvam erat: +pignora hinc reppulit nos **aut**, aptos, ipsa. + +Meae optatos *passa est* Epiros utiliter *Talibus niveis*, hoc lata, edidit. +Dixi ad aestum. + +## Header 2 + +> This is a blockquote following a header. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Header 3 + +``` +This is a code block following a header. +``` + +#### Header 4 + +* This is an unordered list following a header. +* This is an unordered list following a header. +* This is an unordered list following a header. + +##### Header 5 + +1. This is an ordered list following a header. +2. This is an ordered list following a header. +3. This is an ordered list following a header. + +###### Header 6 + +| What | Follows | +|-----------|-----------------| +| A table | A header | +| A table | A header | +| A table | A header | + +---------------- + +There's a horizontal rule above and below this. + +---------------- + +Here is an unordered list: + +* Salt-n-Pepa +* Bel Biv DeVoe +* Kid 'N Play + +And an ordered list: + +1. Michael Jackson +2. Michael Bolton +3. Michael Bublé + +And an unordered task list: + +- [x] Create a sample markdown document +- [x] Add task lists to it +- [ ] Take a vacation + +And a "mixed" task list: + +- [ ] Steal underpants +- ? +- [ ] Profit! + +And a nested list: + +* Jackson 5 + * Michael + * Tito + * Jackie + * Marlon + * Jermaine +* TMNT + * Leonardo + * Michelangelo + * Donatello + * Raphael + +Definition lists can be used with Markdown syntax. Definition terms are bold. + +Name +: Godzilla + +Born +: 1952 + +Birthplace +: Japan + +Color +: Green + + +---------------- + +Tables should have bold headings and alternating shaded rows. + +| Artist | Album | Year | +|-------------------|-----------------|------| +| Michael Jackson | Thriller | 1982 | +| Prince | Purple Rain | 1984 | +| Beastie Boys | License to Ill | 1986 | + +If a table is too wide, it should scroll horizontally. + +| Artist | Album | Year | Label | Awards | Songs | +|-------------------|-----------------|------|-------------|----------|-----------| +| Michael Jackson | Thriller | 1982 | Epic Records | Grammy Award for Album of the Year, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Selling Album, Grammy Award for Best Engineered Album, Non-Classical | Wanna Be Startin' Somethin', Baby Be Mine, The Girl Is Mine, Thriller, Beat It, Billie Jean, Human Nature, P.Y.T. (Pretty Young Thing), The Lady in My Life | +| Prince | Purple Rain | 1984 | Warner Brothers Records | Grammy Award for Best Score Soundtrack for Visual Media, American Music Award for Favorite Pop/Rock Album, American Music Award for Favorite Soul/R&B Album, Brit Award for Best Soundtrack/Cast Recording, Grammy Award for Best Rock Performance by a Duo or Group with Vocal | Let's Go Crazy, Take Me With U, The Beautiful Ones, Computer Blue, Darling Nikki, When Doves Cry, I Would Die 4 U, Baby I'm a Star, Purple Rain | +| Beastie Boys | License to Ill | 1986 | Mercury Records | noawardsbutthistablecelliswide | Rhymin & Stealin, The New Style, She's Crafty, Posse in Effect, Slow Ride, Girls, (You Gotta) Fight for Your Right, No Sleep Till Brooklyn, Paul Revere, Hold It Now, Hit It, Brass Monkey, Slow and Low, Time to Get Ill | + +---------------- + +Code snippets like `var foo = "bar";` can be shown inline. + +Also, `this should vertically align` ~~`with this`~~ ~~and this~~. + +Code can also be shown in a block element. + +``` +foo := "bar"; +bar := "foo"; +``` + +Code can also use syntax highlighting. + +```go +func main() { + input := `var foo = "bar";` + + lexer := lexers.Get("javascript") + iterator, _ := lexer.Tokenise(nil, input) + style := styles.Get("github") + formatter := html.New(html.WithLineNumbers()) + + var buff bytes.Buffer + formatter.Format(&buff, style, iterator) + + fmt.Println(buff.String()) +} +``` + +``` +Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this. +``` + +Inline code inside table cells should still be distinguishable. + +| Language | Code | +|-------------|--------------------| +| Javascript | `var foo = "bar";` | +| Ruby | `foo = "bar"{` | + +---------------- + +Small images should be shown at their actual size. + +![](https://placekitten.com/g/300/200/) + +Large images should always scale down and fit in the content container. + +![](https://placekitten.com/g/1200/800/) + +## Components + +### Alerts + +{{< alert >}}This is an alert.{{< /alert >}} +{{< alert title="Note:" >}}This is an alert with a title.{{< /alert >}} +{{< alert type="success" >}}This is a successful alert.{{< /alert >}} +{{< alert type="warning" >}}This is a warning!{{< /alert >}} +{{< alert type="warning" title="Warning!" >}}This is a warning with a title!{{< /alert >}} + + +## Sizing + +Add some sections here to see how the ToC looks like. Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Parameters available + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Using pixels + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Using rem + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +## Memory + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### RAM to use + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### More is better + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + +### Used RAM + +Bacon ipsum dolor sit amet t-bone doner shank drumstick, pork belly porchetta chuck sausage brisket ham hock rump pig. Chuck kielbasa leberkas, pork bresaola ham hock filet mignon cow shoulder short ribs biltong. + + + +``` +This is the final element on the page and there should be no margin below this. +``` diff --git a/content/ru/coolhack3r.svg b/content/ru/coolhack3r.svg new file mode 100755 index 0000000..36adc5e --- /dev/null +++ b/content/ru/coolhack3r.svg @@ -0,0 +1,2 @@ + + diff --git a/content/ru/datactrl.svg b/content/ru/datactrl.svg new file mode 100755 index 0000000..62a0482 --- /dev/null +++ b/content/ru/datactrl.svg @@ -0,0 +1,2 @@ + + diff --git a/content/ru/docs/About us/_index.md b/content/ru/docs/About us/_index.md new file mode 100644 index 0000000..f26a3ca --- /dev/null +++ b/content/ru/docs/About us/_index.md @@ -0,0 +1,8 @@ +--- +title: "About us" +linkTitle: "About us" +weight: 4 +date: 2022-01-09 +description: > + Who we are, our motivation and policies. +--- \ No newline at end of file diff --git a/content/ru/docs/About us/motivation.md b/content/ru/docs/About us/motivation.md new file mode 100644 index 0000000..f5cbae0 --- /dev/null +++ b/content/ru/docs/About us/motivation.md @@ -0,0 +1,20 @@ +--- +title: "Motivation" +date: 2017-01-05T +weight: 2 +description: > + Why we do it and what we want to achieve. +--- + +Every internet user is forced to use centralized services sacrificing privacy and personal freedoms: +- Accepts incomprehensible licenses +- Endures ads +- Gives his data to unknown person +- End up in a "recommendation bubble". +- Subject to censorship, blocking + +We don't want it that way. We want digital independence and privacy of our data. + +**Our mission is to offer an alternative. Your services - your rules**: +- No license agreements, advertising, surveillance, telemetry, bans and censorship +- Your data is stored on your server and belongs only to you diff --git a/content/ru/docs/About us/policy.md b/content/ru/docs/About us/policy.md new file mode 100644 index 0000000..75e188f --- /dev/null +++ b/content/ru/docs/About us/policy.md @@ -0,0 +1,26 @@ +--- +title: "Policy" +date: 2017-01-05T +weight: 4 +description: > + Our policies and politics. +--- + + Our mission is humanitarian - to realize the right to privacy and confidentiality of anyone who wants it. + + We are not involved in politics, we do not support or belong to political parties, we do not condemn anyone, and we do not participate in conflicts. + +## Privacy Policy + +The mobile app is completely autonomous, it does not download any data from websites, does not contain any trackers, and interacts only with your server. + +The server communicates with your NixOS infrastructure + +The recommended client applications interact only with your server. Exceptions: +- Delta.Chat when using geolocation publishing [forced](https://support.delta.chat/t/tracker-on-android-app/1814) use mapbox +- There are questions about Bitwarden mobile app. It seems there are tracker libs, but the traffic has not analyzed yet, maybe not active. + +## Our web-resources +You leave a lot of your data when you visit any site. At a minimum, IP, at a maximum, all kinds of tracking data. +We **do not use tracking** in any form, on any of our public services. +But **we aggregate access-logging** to understand how many users we have and from what country. All visitor IPs are stored as subnets (x.x.x.0) and may not uniquely identify you. But we recommend to use means of traffic anonymization, as we do not guarantee that our server provider does not collect meta-information. \ No newline at end of file diff --git a/content/ru/docs/About us/team.md b/content/ru/docs/About us/team.md new file mode 100644 index 0000000..bdd6a81 --- /dev/null +++ b/content/ru/docs/About us/team.md @@ -0,0 +1,36 @@ +--- +title: "Team" +date: 2017-01-05T +weight: 3 +description: > + Our team, contributors and like-minded people. +--- + +# 🧑💻 About us + +International team of independent professionals: +- [Zholnay Kirill](https://s.zholnay.name/@kirill) - Founder/CEO/CISO. For more than 15 years builds and protects corporate infrastructure in medium and large companies +- **ilchub** - core-team DevOps, Backend-dev +- **kherel** - core-team Flutter dev +- **nikolai** - QA Engeneer +- and a lot of cool cotributors and [volonteers] + +## 🌠 We get help +- [Roscomsvoboda](https://roskomsvoboda.org/). Speech in Russian [youtube](https://www.youtube.com/watch?v=mdeUTUPeJjA). +- [Privacy Accelerator](https://privacyaccelerator.org/) +- Open Source World Community +- NixOS Community + +## 🫂 Like-minded people +- [Cloudron](https://www.cloudron.io/) - commercial project, code closed, from $15 per month for email and multiple services. You have to install the application yourself on the server, keep an eye on the server resources. +- [IndieWeb](https://indieweb.org/) - it is open-source project, complicated in configuration. +- [Kubenav](https://kubenav.io/) - manages docker containers from mobile. Promising but for highly skilled users. +- [Yunohsot](https://yunohost.org/) - open-source project, but not very stable. +- [FreedomBox](https://freedombox.org) - open source project on ARM +- [Tunrkeylinux](https://turnkeylinux.org) - ready to use software for advanced users + +### Useful +- https://ssd.eff.org +- https://datadetoxkit.org +- https://securityplanner.consumerreports.org/tool +- https://www.fordfoundation.org/work/our-grants/building-institutions-and-networks/cybersecurity-assessment-tool/ \ No newline at end of file diff --git a/content/ru/docs/Architecture/_index.md b/content/ru/docs/Architecture/_index.md new file mode 100644 index 0000000..8e98fa5 --- /dev/null +++ b/content/ru/docs/Architecture/_index.md @@ -0,0 +1,39 @@ +--- +title: "Project architecture" +linkTitle: "Architecture" +weight: 5 +date: 2022-01-09 +description: > + How the project is organized and how it works. +--- + +Yes, you could use kubernetes. But why when immutability is ensured by NixOS? + +**Stack**: [NixOS](https://nixos.org/), python, flutter + +## Mobile app ## +Flutter/Dart was chosen because of the speed and smoothness of the UI and cross-platform. + +## Backend +NixOS + Python. NixOS was chosen because of its reproducibility, python because of its versatility and popularity. + +## Service providers +We do not get paid by any service providers! We are not affiliated with them in any way. We chose them purely for professional reasons. But we do not exclude partnership in the future. + +### Hosting +[Hetzer](https://www.hetzner.com/) was chosen because of low price and acceptable level of service, quality REST API. Wasn't noticed any privacy or data collection issues. + +Candidates: +- Own personal iron server. Our main priority right now. +- A service provider that will provide an API to deploy an iron server. Outside [FVEY](https://en.wikipedia.org/wiki/Five_Eyes) +- OVH +- Scaleway +- DigitalOcean + +There's also free [Oracle Cloud](https://docs.oracle.com/en-us/iaas/Content/FreeTier/freetier_topic-Always_Free_Resources.htm), but where you don't pay, you're usually a commodity. + +### DNS +[Cloudlare](https://cloudflare.com) reliable, free. Probably collects data, otherwise it's hard to explain why proxy other people's traffic for free. In our case we use it only as a DNS-server and do not proxy anything. In the future we will replace it with self-hosted DNS, as soon as we solve the reliability problem. + +### Backup repository +[Backblaze](https://www.backblaze.com/) is free or times cheaper than AWS. Not seen in data collection. [Publishes](https://www.backblaze.com/blog/open-source-data-storage-server/) in open source the hardware it runs on. And also [shares](https://www.backblaze.com/b2/hard-drive-test-data.html) very useful statistics about disk failures, on the basis of which you can choose the most reliable and tested one. In the future, perhaps, we will replace it with a self-hosted or p2p solution. Now it is not the main priority, because the data is encrypted, and the service provider sees only the ip of your server, but not the home one. \ No newline at end of file diff --git a/content/ru/docs/Getting started/Backblaze.mp4 b/content/ru/docs/Getting started/Backblaze.mp4 new file mode 100644 index 0000000..f942916 Binary files /dev/null and b/content/ru/docs/Getting started/Backblaze.mp4 differ diff --git a/content/ru/docs/Getting started/_index.md b/content/ru/docs/Getting started/_index.md new file mode 100644 index 0000000..d9a508c --- /dev/null +++ b/content/ru/docs/Getting started/_index.md @@ -0,0 +1,183 @@ +--- +categories: ["Examples", "Placeholders"] +tags: ["test","docs"] +title: "Getting Started" +linkTitle: "Getting Started" +weight: 1 +description: > + How do you set up SelfPrivacy server? +--- +Установка и настройка +--------------------- + +SelfPrivacy сервер создается поэтапно в течение часа. Звучит страшно, но уверяю, учёная степень не понадобится. Процесс не сложнее покупки в интернет-магазине. + +* Поиск паспорта и карты с балансом $10-15 и $5 в месяц +* Регистрация учётных записей +* Покупка домена +* Подключение домена к DNS серверу +* 🔑 Создание ключей +* Установка +* Подключение к сервисам 🎉 + +**Если поручите кому-нибудь эту задачу — лишитесь приватности.** Для 100% независимости и контроля необходимо делать всё самостоятельно. + + +Регистрация учётных записей +--------------------- + +Для устойчивости и SelfPrivacy требует много учётных записей, не будем доверять все данные одной компании, лучше распределим части системы по разным местам. + +{{% alert title="Защита учётных записей" color="warning" %}} +**Системы взламывают через самое слабое звено.** Чтобы учётные записи не были таким звеном, пароли должны быть разными для каждой учетной записи и сложными. ```MamaMilaRamu```, как ни странно, плохой пароль. Пример хорошего пароля - это парольная фраза: + +```expert repose postwar anytime glimpse freestyle liability effects``` + +или + +```}Rj;EtG:,M!bc4/|``` + +Как такой пароль запомнить? Никак! Пароли не нужно запоминать, их надо создавать и хранить в [менеджере паролей](https://keepassxc.org/download/). Хотя один помнить придётся — пароль от менеджера паролей. + +{{% /alert %}} + + +##### Регистрируемся: +* [Hetzner](https://www.hetzner.com) или [DigitalOcean](https://www.digitalocean.com) — хостинги виртуальных серверов. Какой выберете, в том и будут жить ваши данные и сервисы SelfPrivacy. +* [NameCheap](https://www.namecheap.com/), [Porkbun](https://porkbun.com) или любой другой регистратор, для покупки личного адреса в интернете — домена, который будет указывать на сервер. +* [CloudFlare](https://cloudflare.com) — DNS сервер, где работает ваш домен. +* [Backblaze](https://www.backblaze.com/) — IaaS провайдер, для бесплатного хранения резервных копий ваших данных в зашифрованном виде. + +Регистрация заурядна, но иногда проверка учётной записи длится несколько дней или требует дополнительных документов. Поэтому используйте настоящие документы и заполняйте всё аккуратно. Провайдеры так защищаются от спамеров, ничего личного) + +**Обязательно включите дополнительную защиту учётных записей — второй фактор (MFA, 2FA).** Без этого простого шага ваши данные не будут в безопасности. + +Я знаю, было сложно, но теперь ваши данные защищены лучше, чем у 95% пользователей. Можете собой гордиться! Я вот вами уже горжусь 🤗 + + +Покупка домена +--------------------- + +Включили второй фактор? Я серьёзно! Тогда переходим к интересному! + +**_Домен_ — это кусочек интернета, которому вы даёте имя.** Простор для творчества огромен, у вас есть 63 символа + .com .org .icu и еще несколько сотен доменов после точки. Можно выбрать просто по фамилии, например *ivanov.live* или *ivanov.health*, а можно и что-то творческое — *shit-happens.shop* + +А теперь давайте купим домен, на примере https://www.namecheap.com +*тут видос* +![gif](/images/screencasts/nc-buy-domain.gif) + +###### Рекомендации: +* **Обязательно смотреть на цену ежегодного продления,** она может в разы превышать стоимость покупки. +* **Нормальная цена домена $8-10 в год.** Самые дешёвые — китайские .icu и .cyou — $4-6. +* **При регистрации домена обязательно указывать реальные почту и телефон, иначе регистрацию могут аннулировать.** И если вы не сможете продлить домен, система не будет работать так, как задумано. +* Выбирайте хорошее имя, которое удобно и по телефону диктовать, и на деловой визитке указать. +* Я уже говорил про второй фактор? + + +Подключение домена к DNS серверу +--------------------- + +После покупки, домен добавляем в CloudFlare: + +*тут видос* + +![gif](/images/screencasts/add-domain-to-cf.gif) + +На примере домена ruleit.stream мы выбрали бесплатный тариф и получили имена серверов: **gail.ns.cloudflare.com** и **mattns.cloudflare.com**, которые надо прописать у своего регистратора. В нашем случае NameCheap: + +*тут видос* + +![gif](/images/screencasts/nc-to-cf.gif) + +Заодно проверяем, что у нас включено автопродление и защита персональных данных — WhoisGuard. Через несколько минут или, в худшем случае, до 2-ух суток настройки применятся. + + +🔑 Создание ключей +------------------ + +**_API ключи_ — это почти то же самое, что и логин с паролем, только для программы, а не человека.** Мобильное приложение SelfPrivacy с их помощью управляет сервисами во всех учётных записях вместо вас. Удобно! + +#### Как получить Cloudflare API Token + +![Cloudflare token setup](resource:assets/images/gifs/CloudFlare.gif) +*сюда новый видос* + +1. Переходим по [ссылке](https://dash.cloudflare.com/) и авторизуемся в ранее созданном аккаунте. + +2. В правом верхнем углу кликаем на иконку профиля (для мобильной версии сайта: в верхнем левом углу нажимаем кнопку **Меню** с тремя горизонтальными полосками). В выпавшем меню кликаем на пункт **My Profile**. + +![My profile](resource:assets/images/pics/myprofile.png) +*сюда картинку отсюда https://git.selfprivacy.org/kherel/selfprivacy.org.app/src/branch/master/assets/images/pics/myprofile.png* + +3. Нам предлагается на выбор, четыре категории настройки: **Preferences**, **Authentication**, **API Tokens**, **Sessions**. Выбираем **API Tokens**. + +4. Самым первым пунктом видим кнопку **Create Token**. С полной уверенностью в себе и желанием обрести приватность, нажимаем на неё. + +5. Спускаемся в самый низ и видим поле **Create Custom Token** и кнопку **Get Started** с правой стороны. Нажимаем. + +6. В поле **Token Name** даём своему токену имя. Можете покреативить и отнестись к этому как к наименованию домашнего зверька :) + +7. Далее, у нас **Permissions**. В первом поле выбираем **Zone**. Во втором поле, по центру, выбираем **DNS**. В последнем поле выбираем **Edit**. + +8. Нажимаем на синюю надпись снизу **+ Add more** (сразу же под левым полем которое мы заполняли ранее). Вуаля, у нас появились новые поля. Заполняем по аналогии с предыдущим пунктом, в первом поле выбираем **Zone**, во-втором тоже **Zone**. А уже в третьем нажимаем на **Read**. Давайте сверим с тем, что у вас получилось: + +![Permissions](resource:assets/images/pics/permissions.png) +*сюда картинку отсюда https://git.selfprivacy.org/kherel/selfprivacy.org.app/src/branch/master/assets/images/pics/permissions.png* + +8. Далее смотрим на **Zone Resources**. Под этой надписью есть строка с двумя полями. В первом должно быть **Include**, а во втором — **Specific Zone**. Как только Вы выберите **Specific Zone**, справа появится ещё одно поле. В нём выбираем наш домен. + +9. Листаем в самый низ и нажимаем на синюю кнопку **Continue to Summary**. + +10. Проверяем, всё ли мы правильно выбрали. Должна присутствовать подобная строка: ваш.домен — **DNS:Edit, Zone:Read**. + +11. Нажимаем **Create Token**. + +12. Копируем созданный токен. + + +Hetzner +------------- + +![gif](/images/screencasts/Hetzner.gif) + +1. Переходим по [ссылке](https://console.hetzner.cloud/) и авторизуемся в ранее созданном аккаунте. + +3. Заходим в созданный нами проект. Если такового нет — значит создаём. + +4. *Наводим мышкой на боковую панель.* Она должна раскрыться, показав нам пункты меню. Нас интересует последний — **Security** (с иконкой ключика). + +5. Далее, в верхней части интерфейса видим примерно такой список: **SSH KEYS, API TOKENS, CERTIFICATES, MEMBERS.** Нам нужен **API TOKENS**. Переходим по нему. + +7. По середине в интерфейсе, нас будет ожидать кнопка **GENERATE API TOKEN**. Нажимаем на эту кнопку. + +8. В поле **Description** даём нашему токену название (это может быть любое название, которое Вам нравится, сути оно не меняет). + +9. Под полем **Description** видим возможность выбрать разрешения **PERMISSIONS**. Выбираем **Read & Write**. + +10. Нажимаем **GENERATE API TOKEN**. + +11. После этого, появиться окно с вашим ключём. + + +Backblaze +------------- + +
+ Video manual + {{< video src="Backblaze" muted="true" autoplay="true" autoplay="true" loop="true" >}} + +
+ + +1. Переходим по [ссылке](https://secure.backblaze.com/user_overview.htm) и авторизуемся в ранее созданном аккаунте. + +2. В левой части интерфейса выбираем **App Keys** в подкатегории **Account** + +3. Нажимаем на синюю кнопку **Generate New Master Application Key** + +4. Во всплывающем окне подтверждаем генерацию + +5. Копируем _keyID_ и _applicationKey_ + + +### 🎉 Поздравляю! Теперь Вы готовы использовать приватные сервисы. \ No newline at end of file diff --git a/content/ru/docs/Overview/_index.md b/content/ru/docs/Overview/_index.md new file mode 100644 index 0000000..345e95b --- /dev/null +++ b/content/ru/docs/Overview/_index.md @@ -0,0 +1,38 @@ +--- +title: "Overview" +linkTitle: "Overview" +weight: 2 +description: > + Here's where your user finds out if your project is for them. +--- + +{{% pageinfo %}} +This is a placeholder page that shows you how to use this template site. +{{% /pageinfo %}} + + +The Overview is where your users find out about your project. Depending on the size of your docset, you can have a separate overview page (like this one) or put your overview contents in the Documentation landing page (like in the Docsy User Guide). + +Try answering these questions for your user in this page: + +## What is it? + +Introduce your project, including what it does or lets you do, why you would use it, and its primary goal (and how it achieves it). This should be similar to your README description, though you can go into a little more detail here if you want. + +## Why do I want it? + +Help your user know if your project will help them. Useful information can include: + +* **What is it good for?**: What types of problems does your project solve? What are the benefits of using it? + +* **What is it not good for?**: For example, point out situations that might intuitively seem suited for your project, but aren't for some reason. Also mention known limitations, scaling issues, or anything else that might let your users know if the project is not for them. + +* **What is it *not yet* good for?**: Highlight any useful features that are coming soon. + +## Where should I go next? + +Give your users next steps from the Overview. For example: + +* [Getting Started](/docs/getting-started/): Get started with $project +* [Examples](/docs/examples/): Check out some example code! + diff --git a/content/ru/docs/Services/_index.md b/content/ru/docs/Services/_index.md new file mode 100644 index 0000000..e74ba6c --- /dev/null +++ b/content/ru/docs/Services/_index.md @@ -0,0 +1,8 @@ +--- +title: "Available services" +linkTitle: "Services" +weight: 3 +date: 2022-01-09 +description: > + What services are available and how to use them. +--- diff --git a/content/ru/docs/Services/bitwarden.md b/content/ru/docs/Services/bitwarden.md new file mode 100644 index 0000000..686559c --- /dev/null +++ b/content/ru/docs/Services/bitwarden.md @@ -0,0 +1,7 @@ +--- +title: "Bitwarden" +date: 2023-01-11T18:09:37+03:00 +description: > + Bitwarden is a self-hosted password manager. +--- + diff --git a/content/ru/docs/Services/delta-chat.md b/content/ru/docs/Services/delta-chat.md new file mode 100644 index 0000000..236635c --- /dev/null +++ b/content/ru/docs/Services/delta-chat.md @@ -0,0 +1,28 @@ +--- +title: "Delta Chat" +date: 2023-01-11T17:15:31+03:00 +description: > + Delta Chat is an encrypted messaging app that uses email as transport. +--- + + +Messengers like Telegram, Signal, Whatsapp can't be private due to the peculiarities of architecture - centralization. And peer-to-peer (p2p) services like tox consume too many resources and are inconvenient to use on a mobile device. The best solution is to use **our own** server. +- **Delta.Chat** - uses your personal email server +- Matrix - promising development, will be added to SelfPrivacy after stabilization. +- XMPP/IRC - great candidates, will probably be added to SelfPrivacy later. +- Rocket.Chat, Zulip, Mattermost - no convenient way to communicate between servers. + +## Typical data leaks when using alien servers +1. IP once per minute. Helps determine your location: at home, away from home, at work. +2. The content of your messages. +3. Meta-information: with whom and when you communicated, even if you use encryption. + +## Features of Delta.Chat + +- Regular email client with all the features of IM. +- Reliable end-to-end encryption (e2e), provided a personal [email server]({{< ref "email.md" >}}) is used by both interlocutors or a personal key exchange, such as via QR code. +- Can use any email server, but then you lose control over the meta-information and [risk](https://s.zholnay.name/@kirill/106351532683026396) key-swapping [man-in-the-middle attack](https://en.wikipedia.org/wiki/Man-in-the-middle_attack). +- Slightly slower than usual messengers +- First message is not encrypted because public encryption keys are sent with it. +- There are problems with sending files > 5-7MB. +- There are no convenient channels. We recommend using [decentralized social network]({{< ref "pleroma.md" >}}) diff --git a/content/ru/docs/Services/email.md b/content/ru/docs/Services/email.md new file mode 100644 index 0000000..f5c9a9f --- /dev/null +++ b/content/ru/docs/Services/email.md @@ -0,0 +1,58 @@ +--- +title: "E-mail" +date: 2023-01-11T17:10:29+03:00 +description: > + Self-hosted e-mail service. +--- + +## Authentication + +Users from the "users" tab of your app are used. + +### Connection configuration + +Login must the username with the domain. For example, `user@domain.tld`. + +#### SMTP +SMTP Server: `your domain` + +SMTP Port: 587 + +Authentication: STARTLS + +#### IMAP + +IMAP Server: `your domain` + +IMAP Port: 143 + +Authentication: STARTLS + + +## Alias to addresses. +Messages for `user+alias@domain.com` will come to `user@domain.com`. + +## Filter directories +The message for `user-dir@domain.com` will create a `dir` directory in the `user@domain.com` mailbox. All mail for `user-dir@domain.com` will arrive in the `dir` directory. + +## Web interface + +It may seem undeveloped or outdated to some. But it has the advantage of simplicity and small amount of code and bugs, which increases [security.md] and [privacy.md]. But it is better to use email clients and disable the web interface in SelfPrivacy App. This will reduce the attack surface and the risks of hacking. + +## Recommended email clients + +- Mozilla Thunderbird +- FairEmail (Android) +- ? (iOS) +- ? (PinePhone) + +## Tips +- Email [over 50 years old](https://habr.com/ru/company/timeweb/blog/580830/). In IT, it's a sign of technology maturity and reliability. +- Email, the most popular way to get infected with viruses, after installing them yourself with unlicensed software and cracks. +- Beware of phishing, it can rob you of your savings and control over your digital life. +- Create filter directories for different purposes. This will help protect [against phishing](https://cisomag.eccouncil.org/last-11-email-accounts/) and cluttering your inbox. Examples: + - `user-w@domain.com` - for registering with web services + - `user-shops` - for web-stores + - `user-pay` - payment systems + - `user-forum` - forum notifications +- Use aliases for questionable services or one-time needs, such as `user+tmp@domain.com`. By aliases convenient to filter and mass delete mails. It is also convenient to find out exactly where your mail was leaked from. diff --git a/content/ru/docs/Services/gitea.md b/content/ru/docs/Services/gitea.md new file mode 100644 index 0000000..618dc10 --- /dev/null +++ b/content/ru/docs/Services/gitea.md @@ -0,0 +1,7 @@ +--- +title: "Gitea" +date: 2023-01-11T18:09:12+03:00 +description: > + Gitea is a self-hosted Git service. +--- + diff --git a/content/ru/docs/Services/nextcloud.md b/content/ru/docs/Services/nextcloud.md new file mode 100644 index 0000000..80a8e95 --- /dev/null +++ b/content/ru/docs/Services/nextcloud.md @@ -0,0 +1,11 @@ +--- +title: "Nextcloud" +date: 2023-01-11T17:08:23+03:00 +description: > + Nextcloud is a self-hosted file sharing and collaboration platform. +--- + +# Authentication + +When creating a server, `admin` Nextcloud user is created with the password you've used for +your primary user. diff --git a/content/ru/docs/Services/pleroma.md b/content/ru/docs/Services/pleroma.md new file mode 100644 index 0000000..c5a0059 --- /dev/null +++ b/content/ru/docs/Services/pleroma.md @@ -0,0 +1,27 @@ +--- +title: "Pleroma" +date: 2023-01-11T17:17:40+03:00 +description: > + Pleroma is a self-hosted microblogging platform. +--- + + +_Substitute to: Twitter_ + +_Alternative to: Mastodon, Frendica_ + +Any centralized social network will have to take care of moderation, censorship, +implementation of rules, reading your correspondence as it grows. +Another thing is your own social network, which can only belong to you, +your family or your team. Only a decentralized network can provide maximum privacy. +That's why we offer you to become part of the decentralized network Fediverse. +At SelfPrivacy we use Pleroma. + +## Typical data leaks when using other people's servers +1. IP once per minute. Helps determine your location: at home, away from home, at work. +2. The content of your messages. +3. Meta-information: with whom and when communicated. + +## Features of Pleroma. +- Social network of any scale: from personal server with only one account to thematic. +- Your social network, your rules. You are censor, moderator and administrator. diff --git a/content/ru/docs/_index.md b/content/ru/docs/_index.md new file mode 100755 index 0000000..d5ec96a --- /dev/null +++ b/content/ru/docs/_index.md @@ -0,0 +1,24 @@ + +--- +title: "Documentation" +linkTitle: "Documentation" +weight: 20 +menu: + main: + weight: 20 +--- + +{{% pageinfo %}} +This is a placeholder page that shows you how to use this template site. +{{% /pageinfo %}} + + +This section is where the user documentation for your project lives - all the information your users need to understand and successfully use your project. + +For large documentation sets we recommend adding content under the headings in this section, though if some or all of them don’t apply to your project feel free to remove them or add your own. You can see an example of a smaller Docsy documentation site in the [Docsy User Guide](https://docsy.dev/docs/), which lives in the [Docsy theme repo](https://github.com/google/docsy/tree/master/userguide) if you'd like to copy its docs section. + +Other content such as marketing material, case studies, and community updates should live in the [About](/about/) and [Community](/community/) pages. + +Find out how to use the Docsy theme in the [Docsy User Guide](https://docsy.dev/docs/). You can learn more about how to organize your documentation (and how we organized this site) in [Organizing Your Content](https://docsy.dev/docs/best-practices/organizing-content/). + + diff --git a/content/ru/download/_index.html b/content/ru/download/_index.html new file mode 100644 index 0000000..65e462a --- /dev/null +++ b/content/ru/download/_index.html @@ -0,0 +1,94 @@ +--- +title: Downloads +--- + + + +{{< blocks/lead >}} +
+

Downloads

+
+ +

+ Get the latest version of SelfPrivacy app for your operating system. +

+ +{{< /blocks/lead >}} + +{{< blocks/section color="white" type="section" >}} + +
+

Android

+
+ +
+ + + + +
+ + +{{< /blocks/section >}} + +{{< blocks/section color="white" type="section" >}} +
+

iOS

+
+ +
+

Coming soon

+
+ +{{< /blocks/section >}} + +{{< blocks/section type="section" color="dark" >}} +
+

Desktop

+
+ +
+ + + +
+ +{{< /blocks/section >}} + +{{< blocks/section type="section" >}} + + {{< landing-feature book "What to do next?" "right" >}} + }}"> + Setup guide + + {{< /landing-feature >}} + +{{< /blocks/section >}} diff --git a/content/ru/featured-background.jpg b/content/ru/featured-background.jpg new file mode 100644 index 0000000..7476923 Binary files /dev/null and b/content/ru/featured-background.jpg differ diff --git a/content/ru/hero-image.png b/content/ru/hero-image.png new file mode 100644 index 0000000..51186ab Binary files /dev/null and b/content/ru/hero-image.png differ diff --git a/content/ru/privacy.svg b/content/ru/privacy.svg new file mode 100755 index 0000000..2485db4 --- /dev/null +++ b/content/ru/privacy.svg @@ -0,0 +1,2 @@ + + diff --git a/content/ru/search.md b/content/ru/search.md new file mode 100644 index 0000000..e3690fd --- /dev/null +++ b/content/ru/search.md @@ -0,0 +1,6 @@ +--- +title: Search Results +layout: search + +--- + diff --git a/content/ru/security.svg b/content/ru/security.svg new file mode 100755 index 0000000..f4810be --- /dev/null +++ b/content/ru/security.svg @@ -0,0 +1,2 @@ + + diff --git a/content/ru/simplicity.svg b/content/ru/simplicity.svg new file mode 100755 index 0000000..d0cd422 --- /dev/null +++ b/content/ru/simplicity.svg @@ -0,0 +1,2 @@ + + diff --git a/content/ru/smartphonecomparison.svg b/content/ru/smartphonecomparison.svg new file mode 100755 index 0000000..36fb559 --- /dev/null +++ b/content/ru/smartphonecomparison.svg @@ -0,0 +1,2 @@ + + diff --git a/content/ru/thisisfine.svg b/content/ru/thisisfine.svg new file mode 100755 index 0000000..5463945 --- /dev/null +++ b/content/ru/thisisfine.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/content/ru/zerotrust.svg b/content/ru/zerotrust.svg new file mode 100755 index 0000000..4d05618 --- /dev/null +++ b/content/ru/zerotrust.svg @@ -0,0 +1,97 @@ + + diff --git a/content/second.en.md b/content/second.en.md deleted file mode 100644 index cc0cdfa..0000000 --- a/content/second.en.md +++ /dev/null @@ -1,296 +0,0 @@ ---- -title: Second -images: ["brand.png"] ---- - -
-
-

-Deployment and setup -

-
-

-

-SelfPrivacy-server is created step by step within an hour. Sounds scary, but believe me, -you shouldn't be a PhD to accomplish that. It's as simple as purchase in the e-shop. -

-
    -
  • -Searching for passport and card with balance of $10-15 and $5 per month -
  • -
  • -Accounts registration -
  • -
  • -Protecting accounts -
  • -
  • -Domain purchasing -
  • -
  • -Connecting Domain to DNS Server -
  • -
  • -🔑 Generating tokens -
  • -
  • -Installation -
  • -
  • -Connecting to the services 🎉 -
  • -
-

-If you delegate this process to someone else, you will lose privacy. For 100% independence -and control -we recommend to do everything on your own. -

-
-
-

-Accounts registration -

-

-For stability and privacy, SelfPrivacy requires many accounts. If you hold everything in one -place, -you'll get the same you've been running from — all data in hands of one corporation🤦 -

-

-That's why, different parts of the system will be in different places. Let's register: -

-
    -
  • -Hetzner is a virtual server hosting. Our -data and SelfPrivacy services will live here. -
  • -
  • -NameCheap or any other -registrar, to purchase your personal address on the Internet — -the domain that will point to the server. -
  • -
  • -CloudFlare is a DNS server, where your -personal -address(domain) works. -
  • -
  • - -Backblaze is an IaaS, that provides free storage for your encrypted backups. -
  • -
-

-Registration is trivial, but sometimes account activation may take up to few days or requires -additional documents. -Therefore, use real documents and fill out everything carefully. -Providers protect themselves from spam in such way. Nothing personal ) -

-
-
-

-Protecting accounts -

-

-Most often, systems are hacked through the weakest part. In order for accounts not to be such -a part, passwords must be different and complex. TwinkleTwinkleLittleStar is a great example of a -bad password. -A good one 🌈 is a -passphrase: -

-

-expert repose postwar anytime glimpse freestyle liability effects -

-

or

-

-}Rj;EtG:,M!bc4/| -

-

-How to remember such complicated password? No way! Passwords do not need to be remembered, they must -be -created and stored in the password manager. Though, -you'll -have to remember at least one — password from the password manager. -

-

-Be sure to enable additional account protection - the second factor (MFA, 2FA). -Without this simple step, your data will not be safe. -

-

-I know it was difficult, but now your data is better protected than 95% of users. -You can be proud of yourself! I'm proud of you 🤗 -

-
-

-Domain purchasing -

-

-Enabled 2FA? Then let's proceed to the most interesting part! -

-
-gif -
-

-Domain — it's a piece of Internet, which you can name like your home pet. Potential for -creativity is huge. -Your only limitations are 63 symbols length + .com .org .icu or other domain zones. Feel free to choose -among hundreds of others. -You can choose your surname as a domain, like this: jackson.live or carson.health, or it can be -something creative, -like: unicorn-land.shop -

-
-

-Advices -

-
    -
  • Be sure to look at the annual renewal price, it can exceed the purchase price many times.
  • -
  • Normal domain price is $8-10 per year. The cheapest are Chinese .icu and .cyou - $4-6.
  • -
  • A good name is convenient, both on the phone to dictate, and on the business card to indicate. -
  • -
  • The last name in the domain is good in that you can distribute mail to all namesakes, for -example: -name.secondname@surname.com, ns@surname.com or name@surname.com
  • -
  • -During domain registration, make sure to enter your real e-mail address, otherwise your -registration can be -canceled. And if you can't extend the domain, the system won't work as intended. -
  • -
  • Did I talk about the 2FA?
  • -
-
-

-Connecting Domain to DNS Server -

-

-After acquisition, add your domain into CloudFlare: -

-
-gif -
-

-Using ruleit.stream as example, we chose free service plan -and got nameservers: gail.ns.cloudflare.com and mattns.cloudflare.com, which must be registered with our registrar. -In our case NameCheap: -

-
-gif -
-

-At the same time, we check that we include auto-renewal and protection of personal data — WhoisGuard. -After a few minutes or, in the worst case, up to 2 days, the settings will be applied. -

-

-🔑 Generating tokens -

-
-

-API tokens -

-

-API tokens are almost the same as login and password, only for a program, not a person. -SelfPrivacy application uses them to manage services in all accounts instead of you. Convenient! -

-

-Tokens should be stored in the password manager -

-

-We do not need a token for the NameCheap. But we will need one for the CloudFlare -to use it for domain management. -

-

-CloudFlare -

-
    -
  • Visit the following link.
  • -
  • In the right corner, we click on the profile icon (a man in a circle). For the mobile version -of the site, in -the upper left corner, click the Menu button (three horizontal bars), in the dropdown -menu, -click on My Profile -
  • -
  • We have four configuration categories to choose from: Communication, Authentication, API -Tokens, Session. Choose API Tokens. -
  • -
  • The first item is the Create Token button. With complete self-confidence and a desire -to gain privacy, we press it. -
  • -
  • We go down to the bottom and see the Create Custom Token field and -the Get Started button on the right side. We press.
  • -
  • In the Token Name field, we give our token a name. You can quote and treat this as -the name of a pet:)
  • -
  • Next we have Permissions. In the leftmost field, select Zone. In the longest -field, center, select -DNS. In the rightmost field, select Edit. -
  • -
  • Next, right under this line, click Add More. Similar field will appear.
  • -
  • In the leftmost field of the new line, we select, similar to the last line — Zone. In the -center — a little different. -Here we choose the same as in the left — Zone. In the rightmost field, select -Read. -
  • -
  • Next we look at Zone Resources. Under this inscription there is a line with two fields. -The left must have Include and the right must have Specific Zone. Once you select -Specific Zone, another field appears on the right. We choose our domain in it. -
  • -
  • We flick to the bottom and press the blue Continue to Summary button.
  • -
  • We're checking to see if we got everything right. A similar string must be present: Domain — -DNS:Edit, Zone:Read. -
  • -
  • Click on Create Token.
  • -
  • We copy the created token, and save it in a reliable place (preferably in the password manager).
  • -
-gif -

-Hetzner -

-
    -
  • Visit the following link and authorize in the -previously created account.
  • -
  • We go into the project we created. If there is none, then we create.
  • -
  • Point the mouse to the side panel. It should open by showing us menu items. We are interested -in the latter — Security (with a key icon). -
  • -
  • Next, at the top of the interface we see approximately the following list: SSH Keys, -API Tokens, -Certificates, Members. We need the API Tokens. Click on it. -
  • -
  • On the right side of the interface, we will be waiting for the Generate API token button. -If you use -the mobile version of the site — in the lower right corner you will see a red plus -button. We press. -
  • -
  • In the Description field, give our token a name (this can be any name that -you like, it does not essentially change).
  • -
  • Under Description, you can select permissions. Select Read & Write. -
  • -
  • Click Generate API Token.
  • -
  • After that, your key will be displayed. We write it in a safe place, or even better, we save it -in the -password manager. -
  • -
-gif -

-Backblaze B2 -

-
    -
  • Visit the following link
  • -
  • On the left side of the interface, select App Keys in the B2 Cloud Storage -subcategory. -
  • -
  • Click on the blue Generate New Master Application Key button.
  • -
  • In the appeared pop-up window confirm the generation.
  • -
  • Save keyID and applicationKey in the safe place. For example - in the -password manager :) -
  • -
-gif -

-🎉 Congratulations. Now you are ready to use private services. -

-
-
-
diff --git a/content/second.ru.md b/content/second.ru.md deleted file mode 100644 index a993f18..0000000 --- a/content/second.ru.md +++ /dev/null @@ -1,311 +0,0 @@ ---- -title: Second -images: ["brand.png"] ---- - -
-
-

-Установка и настройка -

- -
-

- -

-SelfPrivacy сервер создается поэтапно в течение часа. Звучит страшно, но уверяю, учёная степень не -понадобится. Процесс не сложнее покупки в интернет-магазине. -

- -
    -
  • -Поиск паспорта и карты с балансом $10-15 и $5 в месяц -
  • -
  • -Регистрация учётных записей -
  • -
  • -Защита учётных записей -
  • -
  • -Покупка домена -
  • -
  • -Подключение домена к DNS серверу -
  • -
  • -🔑 Создание ключей -
  • -
  • -Установка -
  • -
  • -Подключение к сервисам 🎉 -
  • -
-

-Если кому-нибудь поручите эту задачу — лишитесь приватности. Для 100% независимости и контроля -необходимо всё -делать самостоятельно. -

-
- -
-

-Регистрация учётных записей -

-

-Для устойчивости и приватности SelfPrivacy требует много учётных записей. Если всё держать в одном -месте, -получаем то, от чего бежали — все данные у одной компании. 🤦‍♀️ -

-

-Поэтому разные части системы будут в разных местах. Регистрируемся: -

-
    -
  • -Hetzner — хостинг виртуального сервера. Здесь -будут жить наши данные и сервисы SelfPrivacy. -
  • -
  • -NameCheap или любой другой -регистратор, для покупки личного адреса в интернете — домена, который будет указывать на сервер. -
  • -
  • -CloudFlare — DNS сервер, где работает Ваш -домен. -
  • -
  • -Backblaze -— IaaS провайдер, для бесплатного хранения резервных копий Ваших данных в -зашифрованном виде. -
  • -
-

-Регистрация заурядна, но иногда проверка учётной записи длится несколько дней или требует -дополнительных -документов. Поэтому используйте настоящие документы и заполняйте всё аккуратно. Провайдеры так -защищаются от спамеров, ничего личного ) -

-
- -
-

-Защита учётных записей -

-

-Чаще всего системы взламывают через самое слабое звено. Чтобы учётные записи не были таким звеном, -пароли -должны быть разными и сложными. MamaMilaRamu, как ни странно, плохой пароль, а отличные 🌈 — это -парольная фраза: -

-

-expert repose postwar anytime glimpse freestyle liability effects -

-

или

-

-}Rj;EtG:,M!bc4/| -

-

-Как такой пароль запомнить? Никак! Пароли не нужно запоминать, их надо создавать и хранить в менеджере паролей. Хотя один помнить придётся — -пароль от менеджера паролей. -

-

-Обязательно включите дополнительную защиту учётных записей — второй фактор (MFA, 2FA). Без -этого -простого шага Ваши данные не будут в безопасности. -

-

-Я знаю, было сложно, но теперь Ваши данные защищены лучше, чем у 95% пользователей. Можете собой -гордиться! Я вот Вами -горжусь 🤗 -

-
- -

-Покупка домена -

- -

-Включили второй фактор? Я серьёзно! Тогда переходим к интересному! -

-
-gif -
- -

-Домен — это кусочек интернета, которому Вы даёте имя. Простор для творчества огромен, у Вас есть -63 символа + .com .org .icu и еще несколько сотен доменов после точки. Можно просто по фамилии выбрать, -например -ivanov.live или ivanov.health, а можно что-то творческое — shit-happens.shop -

- -
-

-Рекомендации -

-
    -
  • Обязательно смотреть на цену ежегодного продления, она может в разы превышать стоимость покупки. -
  • -
  • Нормальная цена домена $8-10 в год. Самые дешёвые — китайские .icu и .cyou — $4-6.
  • -
  • Хорошее имя удобно и по телефону диктовать, и на деловой визитке указать.
  • -
  • Фамилия в домене хороша тем, что можно раздать почту всем однофамильцам, например: -name.secondname@surname.com, ns@surname.com или name@surname.com
  • -
  • При регистрации домена обязательно указывать реальные почту и телефон, иначе регистрацию могут -аннулировать. И если Вы не сможете продлить домен, система не будет работать так, как задумано. -
  • -
  • Я уже говорил про второй фактор?
  • -
-
- - -

-Подключение домена к DNS серверу -

- -

-После покупки, домен добавляем в CloudFlare: -

- -
-gif -
- -

-На примере домена ruleit.stream мы выбрали бесплатный тариф и получили -имена серверов: gail.ns.cloudflare.com и mattns.cloudflare.com, которые надо прописать у своего регистратора. В -нашем случае NameCheap: -

- -
-gif -
- -

-Заодно проверяем, что у нас включено автопродление и защита персональных данных — WhoisGuard. Через несколько минут или, в худшем случае, до 2-ух суток -настройки применятся. -

- - -

-🔑 Создание ключей -

- -
- -

-API ключи -

- -

-API ключи — это почти то же самое, что и логин с паролем, только для программы, а не -человека. -Мобильное приложение SelfPrivacy с их помощью управляет сервисами во всех учётных записях вместо -Вас. Удобно! -

- -

-Ключи хранить в менеджере паролей. -

- -

-Для NameCheap нам ключ не нужен, мы уже всё сделали. А управление доменом будет в CloudFlare. -

- -

-CloudFlare -

- -
    -
  • Переходим по ссылке и авторизуемся в ранее -созданном аккаунте.
  • -
  • В правом углу кликаем на иконку профиля (человечек в кружочке). Для мобильной версии сайта, в -верхнем левом углу, нажимаем кнопку Меню (три горизонтальных полоски), в выпавшем меню, -ищем пункт My Profile.
  • -
  • Нам предлагается на выбор, четыре категории настройки: Preferences, Authentication, API -Tokens, Sessions. Выбираем API Tokens.
  • -
  • Самым первым пунктом видим кнопку Create Token. С полной уверенностью в себе и желанием -обрести приватность, нажимаем на неё.
  • -
  • Спускаемся в самый низ и видим поле Create Custom Token и кнопку Get Started с -правой стороны. Нажимаем.
  • -
  • В поле Token Name даём своему токену имя. Можете покреативить и отнестись к этому как к -наименованию домашнего зверька :)
  • -
  • Далее, у нас Permissions. В первом поле выбираем Zone. Во втором -поле, по центру, -выбираем DNS. В последнем поле выбираем Edit.
  • -
  • Далее, прямо под этой строчкой, нажимаем на Add More. Появится строка, аналогичная той, -которую мы только что заполняли.
  • -
  • В первом поле новой строки выбираем, аналогично прошлой строке — Zone. Во -втором поле — немного по другому. Тут мы выбираем то же самое, что и в первом — Zone. В -третьем поле — выбираем Read.
  • -
  • Далее смотрим на Zone Resources. Под этой надписью есть строка с двумя полями. В первом -должно быть Include, а во втором — Specific Zone. Как только вы выберите -Specific Zone, справа появится ещё одно поле. В нём выбираем наш домен. -
  • -
  • Листаем в самый низ и нажимаем на синюю кнопку Continue to Summary.
  • -
  • Проверяем, всё ли мы правильно выбрали. Должна присутствовать подобная строка: ваш.домен — -DNS:Edit, Zone:Read. -
  • -
  • Нажимаем Create Token.
  • -
  • Копируем созданный токен, и сохраняем его в надёжном месте (желательно — в менеджере паролей). -
  • -
- -gif - -

-Hetzner -

- -
    -
  • Переходим по ссылке и авторизуемся в ранее -созданном аккаунте.
  • -
  • Заходим в созданный нами проект. Если такового нет — значит создаём.
  • -
  • Наводим мышкой на боковую панель. Она должна раскрыться, показав нам пункты меню. Нас интересует -последний — Security (с иконкой ключика).
  • -
  • Далее, в верхней части интерфейса видим примерно такой список: SSH KEYS, API TOKENS, -CERTIFICATES, MEMBERS. Нам нужен API TOKENS. Переходим по нему.
  • -
  • По середине в интерфейсе, нас будет ожидать кнопка GENERATE API TOKEN. Нажимаем на эту -кнопку.
  • -
  • В поле Description даём нашему токену название (это может быть любое название, которое -Вам нравится, сути оно не меняет).
  • -
  • Под полем Description видим возможность выбрать разрешения PERMISSIONS. Выбираем -Read & Write. -
  • -
  • Нажимаем GENERATE API TOKEN.
  • -
  • После этого, появиться окно с Вашим ключём. Записываем его в надёжном месте, или ещё лучше, -сохраняем -в -менеджере паролей. -
  • -
- -gif - -

-Backblaze B2 -

- -
    -
  • Переходим по ссылке и авторизуемся -в ранее -созданном аккаунте.
  • -
  • В левой части интерфейса выбираем App Keys в подкатегории "Account"
  • -
  • Нажимаем на синюю кнопку Generate New Master Application Key
  • -
  • Во всплывающем окне подтверждаем генерацию
  • -
  • Сохраняем keyID и applicationKey в надёжном месте. Например - в менеджере паролей :)
  • -
- -gif - -

-🎉 Поздравляю! Теперь Вы готовы использовать приватные сервисы. -

-
-
-
diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..e8f211a --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,13 @@ +version: "3.3" + +services: + + site: + image: docsy/docsy-example + build: + context: . + command: server + ports: + - "1313:1313" + volumes: + - .:/src diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..1000f68 --- /dev/null +++ b/go.mod @@ -0,0 +1,9 @@ +module github.com/google/docsy-example + +go 1.12 + +require ( + github.com/FortAwesome/Font-Awesome v0.0.0-20220831210243-d3a7818c253f // indirect + github.com/google/docsy v0.5.1 // indirect + github.com/twbs/bootstrap v4.6.2+incompatible // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..796b137 --- /dev/null +++ b/go.sum @@ -0,0 +1,7 @@ +github.com/FortAwesome/Font-Awesome v0.0.0-20220831210243-d3a7818c253f h1:bvkUptSRPZBr3Kxuk+bnWCEmQ5MtEJX5fjezyV0bC3g= +github.com/FortAwesome/Font-Awesome v0.0.0-20220831210243-d3a7818c253f/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo= +github.com/google/docsy v0.5.1 h1:D/ZdFKiE29xM/gwPwQzmkyXhcbQGkReRS6aGrF7lnYk= +github.com/google/docsy v0.5.1/go.mod h1:maoUAQU5H/d+FrZIB4xg1EVWAx7RyFMGSDJyWghm31E= +github.com/google/docsy/dependencies v0.5.1/go.mod h1:EDGc2znMbGUw0RW5kWwy2oGgLt0iVXBmoq4UOqstuNE= +github.com/twbs/bootstrap v4.6.2+incompatible h1:TDa+R51BTiy1wEHSYjmqDb8LxNl/zaEjAOpRE9Hwh/o= +github.com/twbs/bootstrap v4.6.2+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0= diff --git a/i18n/en.toml b/i18n/en.toml new file mode 100644 index 0000000..9127e7f --- /dev/null +++ b/i18n/en.toml @@ -0,0 +1,65 @@ +[footer_learn_more] +other = "Learn more" + +[footer_available_services] +other = "Available services" + +[footer_user_guide] +other = "User guide" + +[footer_blog] +other = "Blog" + +[footer_get_help] +other = "Get help" + +[footer_matrix_chat] +other = "Matrix chat" + +[footer_telegram_chat] +other = "Telegram chat" + +[footer_contribute] +other = "Contribute" + +[footer_source_code] +other = "Source code" + +[footer_translate] +other = "Help us translate" + +[footer_dev_wiki] +other = "Developer wiki" + +[footer_test_nightly] +other = "Test nightly builds" + +[footer_download] +other = "Download the app" + +[footer_download_phone] +other = "For your phone" + +[footer_download_fdroid] +other = "F-Droid" + +[footer_download_google_play] +other = "Google Play" + +[footer_download_apk] +other = "APK file" + +[footer_download_desktop] +other = "For your computer" + +[footer_download_windows] +other = "Windows" + +[footer_download_macos] +other = "macOS" + +[footer_download_linux] +other = "GNU/Linux" + +[videoUnsupported] +other = "Your browser doesn't support embedded videos, but don't worry, you can download it and watch it with your favorite video player!" \ No newline at end of file diff --git a/i18n/ru.toml b/i18n/ru.toml new file mode 100644 index 0000000..ad7b9d9 --- /dev/null +++ b/i18n/ru.toml @@ -0,0 +1,26 @@ +[footer_learn_more] +other = "Узнать больше" + +[footer_available_services] +other = "Доступные сервисы" + +[footer_user_guide] +other = "Пользовательская документация" + +[footer_blog] +other = "Блог" + +[footer_get_help] +other = "Получить помощь" + +[footer_matrix_chat] +other = "Чат в Matrix" + +[footer_telegram_chat] +other = "Чат в Telegram" + +[footer_contribute] +other = "Внести вклад" + +[videoUnsupported] +other = "Ваш браузер не поддерживает встраиваемое видео, но не переживайте, вы можете скачать его и смотреть в вашем любимом видеоплеере!" \ No newline at end of file diff --git a/layouts/404.html b/layouts/404.html new file mode 100644 index 0000000..f23de80 --- /dev/null +++ b/layouts/404.html @@ -0,0 +1,9 @@ +{{ define "main"}} +
+
+

Not found

+

Oops! This page doesn't exist. Try going back to our home page.

+ +
+
+{{ end }} diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html deleted file mode 100644 index ea9c8f2..0000000 --- a/layouts/_default/baseof.html +++ /dev/null @@ -1,10 +0,0 @@ - - - {{ partial "head.html" . }} - - {{ partial "header.html" . }} - {{ block "main" . }} - {{ end }} - {{ partial "footer.html" . }} - - diff --git a/layouts/_default/index.html b/layouts/_default/index.html deleted file mode 100644 index e0e8308..0000000 --- a/layouts/_default/index.html +++ /dev/null @@ -1,3 +0,0 @@ -{{ define "main" }} - {{ .Content }} -{{ end }} diff --git a/layouts/_default/single.html b/layouts/_default/single.html deleted file mode 100644 index e0e8308..0000000 --- a/layouts/_default/single.html +++ /dev/null @@ -1,3 +0,0 @@ -{{ define "main" }} - {{ .Content }} -{{ end }} diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html index 708b890..0d2ddcc 100644 --- a/layouts/partials/footer.html +++ b/layouts/partials/footer.html @@ -1,8 +1,58 @@ - +{{ $links := .Site.Params.links }} + \ No newline at end of file diff --git a/layouts/partials/head.html b/layouts/partials/head.html deleted file mode 100644 index 0e03b98..0000000 --- a/layouts/partials/head.html +++ /dev/null @@ -1,13 +0,0 @@ - - - {{ block "title" . }} - {{ .Title }} - {{ end }} - {{ template "_internal/opengraph.html" . }} - {{ template "_internal/twitter_cards.html" . }} - - - - - - diff --git a/layouts/partials/header.html b/layouts/partials/header.html deleted file mode 100644 index a40e9ce..0000000 --- a/layouts/partials/header.html +++ /dev/null @@ -1,28 +0,0 @@ - diff --git a/layouts/partials/hooks/head-end.html b/layouts/partials/hooks/head-end.html new file mode 100644 index 0000000..008b4f0 --- /dev/null +++ b/layouts/partials/hooks/head-end.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/layouts/partials/navbar-lang-selector.html b/layouts/partials/navbar-lang-selector.html new file mode 100644 index 0000000..33eca94 --- /dev/null +++ b/layouts/partials/navbar-lang-selector.html @@ -0,0 +1,10 @@ +{{/* Link directly to documentation etc., if possible. */}} +{{ $langPage := cond (gt (len .Translations) 0) . .Site.Home }} + + \ No newline at end of file diff --git a/layouts/shortcodes/justimg.html b/layouts/shortcodes/justimg.html new file mode 100644 index 0000000..0f8d1d9 --- /dev/null +++ b/layouts/shortcodes/justimg.html @@ -0,0 +1,2 @@ +{{ $original := .Page.Resources.GetMatch (printf "**%s*" (.Get 0)) }} + diff --git a/layouts/shortcodes/landing-feature.html b/layouts/shortcodes/landing-feature.html new file mode 100644 index 0000000..0cdee66 --- /dev/null +++ b/layouts/shortcodes/landing-feature.html @@ -0,0 +1,30 @@ +{{ $illustration := .Page.Resources.GetMatch (printf "**%s*" (.Get 0)) }} +{{ $title := .Get 1 }} +{{ $side := .Get 2 }} +
+ {{ if eq $side "right" }} +
+ {{ if $title }} +

{{ $title }}

+ {{ end }} + {{ .Inner }} +
+ {{ if $illustration }} +
+ +
+ {{ end }} + {{ else }} + {{ if $illustration }} +
+ +
+ {{ end }} +
+ {{ if $title }} +

{{ $title }}

+ {{ end }} + {{ .Inner }} +
+ {{ end }} +
\ No newline at end of file diff --git a/layouts/shortcodes/landing-service.html b/layouts/shortcodes/landing-service.html new file mode 100644 index 0000000..2290e4e --- /dev/null +++ b/layouts/shortcodes/landing-service.html @@ -0,0 +1,9 @@ +{{ $illustration := .Get 0 }} +{{ $title := .Get 1 }} +
+ {{ $title }} +
+

{{ $title }}

+ {{ .Inner }} +
+
\ No newline at end of file diff --git a/layouts/shortcodes/video.html b/layouts/shortcodes/video.html new file mode 100644 index 0000000..0e60a3e --- /dev/null +++ b/layouts/shortcodes/video.html @@ -0,0 +1,67 @@ +{{- /* hugo-video shortcode +/* +/* This file is part of hugo-video shortcode. +/* A Hugo component shortcode to embed videos using the HTML video element. +/* +/* @copyright @2019 onwards Nicolas Martignoni (nicolas@martignoni.net) +/* @source https://github.com/martignoni/hugo-video +/* @license https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later +/* +*/ -}} + +{{- $video_src := .Get "src" -}} +{{- $video_mp4 := "" -}} +{{- $video_webm := "" -}} +{{- $video_ogg := "" -}} +{{- $video_dl := "" -}} +{{- $width := "100%" -}} +{{- $filenotfound := true -}} +{{- $unsupportedfile := true -}} + +{{- /* Find all files with filename (without suffix) matching "src" parameter. */ -}} +{{- $video_files := (.Page.Resources.Match (printf "%s*" $video_src)) -}} + +{{- /* Find first image file with filename (without suffix) matching "src" parameter. */ -}} +{{- $poster := ((.Page.Resources.ByType "image").GetMatch (printf "%s*" $video_src)) -}} + +{{- /* Find in page bundle all valid video files with matching name. */ -}} +{{- with $video_files -}} + {{- $filenotfound = false -}} + {{- range . -}} + {{- if or (in .MediaType.Suffixes "mp4") (in .MediaType.Suffixes "m4v") -}} + {{- $unsupportedfile = false -}} + {{- $video_mp4 = . -}} + {{- end -}} + {{- if (in .MediaType.Suffixes "webm") -}} + {{- $unsupportedfile = false -}} + {{- $video_webm = . -}} + {{- end -}} + {{- if (in .MediaType.Suffixes "ogv") -}} + {{- $unsupportedfile = false -}} + {{- $video_ogg = . -}} + {{- end -}} + {{- end -}} +{{- end -}} + +{{- if $filenotfound -}} + {{- /* No file of given name was found, we stop here. */ -}} + {{- errorf "No file with filename %q found." $video_src -}} +{{- else if $unsupportedfile -}} + {{- errorf "No valid video file with filename %q found." $video_src -}} +{{- else -}} + +{{- end -}} \ No newline at end of file diff --git a/netlify.toml b/netlify.toml new file mode 100644 index 0000000..e04cfd8 --- /dev/null +++ b/netlify.toml @@ -0,0 +1,4 @@ +[build] +[build.environment] +HUGO_VERSION = "0.104.3" +GO_VERSION = "1.19.2" diff --git a/package.json b/package.json new file mode 100644 index 0000000..960eee9 --- /dev/null +++ b/package.json @@ -0,0 +1,24 @@ +{ + "name": "tech-doc-hugo", + "version": "0.0.1", + "description": "Hugo theme for technical documentation.", + "main": "none.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/google/docsy-example.git" + }, + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/google/docsy-example/issues" + }, + "homepage": "https://github.com/google/docsy-example#readme", + "devDependencies": { + "autoprefixer": "^10.4.0", + "postcss": "^8.3.7", + "postcss-cli": "^9.0.2" + } +} diff --git a/static/favicons/android-chrome-192x192.png b/static/favicons/android-chrome-192x192.png new file mode 100644 index 0000000..8cc8822 Binary files /dev/null and b/static/favicons/android-chrome-192x192.png differ diff --git a/static/favicons/android-chrome-512x512.png b/static/favicons/android-chrome-512x512.png new file mode 100644 index 0000000..04d98d1 Binary files /dev/null and b/static/favicons/android-chrome-512x512.png differ diff --git a/static/favicons/android-chrome-maskable-192x192.png b/static/favicons/android-chrome-maskable-192x192.png new file mode 100644 index 0000000..8cc8822 Binary files /dev/null and b/static/favicons/android-chrome-maskable-192x192.png differ diff --git a/static/favicons/android-chrome-maskable-512x512.png b/static/favicons/android-chrome-maskable-512x512.png new file mode 100644 index 0000000..04d98d1 Binary files /dev/null and b/static/favicons/android-chrome-maskable-512x512.png differ diff --git a/static/favicons/apple-touch-icon.png b/static/favicons/apple-touch-icon.png new file mode 100644 index 0000000..5dbb481 Binary files /dev/null and b/static/favicons/apple-touch-icon.png differ diff --git a/static/favicons/favicon.ico b/static/favicons/favicon.ico new file mode 100644 index 0000000..3dad5d4 Binary files /dev/null and b/static/favicons/favicon.ico differ diff --git a/static/fonts/Inter-Black.eot b/static/fonts/Inter-Black.eot deleted file mode 100755 index 07d2e47..0000000 Binary files a/static/fonts/Inter-Black.eot and /dev/null differ diff --git a/static/fonts/Inter-Black.ttf b/static/fonts/Inter-Black.ttf deleted file mode 100755 index df3f949..0000000 Binary files a/static/fonts/Inter-Black.ttf and /dev/null differ diff --git a/static/fonts/Inter-Black.woff b/static/fonts/Inter-Black.woff deleted file mode 100755 index b79d631..0000000 Binary files a/static/fonts/Inter-Black.woff and /dev/null differ diff --git a/static/fonts/Inter-Black.woff2 b/static/fonts/Inter-Black.woff2 deleted file mode 100755 index 307a3ae..0000000 Binary files a/static/fonts/Inter-Black.woff2 and /dev/null differ diff --git a/static/fonts/Inter-BlackItalic.eot b/static/fonts/Inter-BlackItalic.eot deleted file mode 100755 index 999d4ca..0000000 Binary files a/static/fonts/Inter-BlackItalic.eot and /dev/null differ diff --git a/static/fonts/Inter-BlackItalic.ttf b/static/fonts/Inter-BlackItalic.ttf deleted file mode 100755 index cfd2bf4..0000000 Binary files a/static/fonts/Inter-BlackItalic.ttf and /dev/null differ diff --git a/static/fonts/Inter-BlackItalic.woff b/static/fonts/Inter-BlackItalic.woff deleted file mode 100755 index 96ad4ff..0000000 Binary files a/static/fonts/Inter-BlackItalic.woff and /dev/null differ diff --git a/static/fonts/Inter-BlackItalic.woff2 b/static/fonts/Inter-BlackItalic.woff2 deleted file mode 100755 index 6573bb0..0000000 Binary files a/static/fonts/Inter-BlackItalic.woff2 and /dev/null differ diff --git a/static/fonts/Inter-Bold.eot b/static/fonts/Inter-Bold.eot deleted file mode 100755 index 4e49af3..0000000 Binary files a/static/fonts/Inter-Bold.eot and /dev/null differ diff --git a/static/fonts/Inter-Bold.ttf b/static/fonts/Inter-Bold.ttf deleted file mode 100755 index 48d3f01..0000000 Binary files a/static/fonts/Inter-Bold.ttf and /dev/null differ diff --git a/static/fonts/Inter-Bold.woff b/static/fonts/Inter-Bold.woff deleted file mode 100755 index 28850f7..0000000 Binary files a/static/fonts/Inter-Bold.woff and /dev/null differ diff --git a/static/fonts/Inter-Bold.woff2 b/static/fonts/Inter-Bold.woff2 deleted file mode 100755 index b74e5f4..0000000 Binary files a/static/fonts/Inter-Bold.woff2 and /dev/null differ diff --git a/static/fonts/Inter-BoldItalic.eot b/static/fonts/Inter-BoldItalic.eot deleted file mode 100755 index 05862af..0000000 Binary files a/static/fonts/Inter-BoldItalic.eot and /dev/null differ diff --git a/static/fonts/Inter-BoldItalic.ttf b/static/fonts/Inter-BoldItalic.ttf deleted file mode 100755 index a2b2cb4..0000000 Binary files a/static/fonts/Inter-BoldItalic.ttf and /dev/null differ diff --git a/static/fonts/Inter-BoldItalic.woff b/static/fonts/Inter-BoldItalic.woff deleted file mode 100755 index aa35e45..0000000 Binary files a/static/fonts/Inter-BoldItalic.woff and /dev/null differ diff --git a/static/fonts/Inter-BoldItalic.woff2 b/static/fonts/Inter-BoldItalic.woff2 deleted file mode 100755 index 54d9305..0000000 Binary files a/static/fonts/Inter-BoldItalic.woff2 and /dev/null differ diff --git a/static/fonts/Inter-ExtraBold.eot b/static/fonts/Inter-ExtraBold.eot deleted file mode 100755 index 4554a38..0000000 Binary files a/static/fonts/Inter-ExtraBold.eot and /dev/null differ diff --git a/static/fonts/Inter-ExtraBold.ttf b/static/fonts/Inter-ExtraBold.ttf deleted file mode 100755 index 0aadf04..0000000 Binary files a/static/fonts/Inter-ExtraBold.ttf and /dev/null differ diff --git a/static/fonts/Inter-ExtraBold.woff b/static/fonts/Inter-ExtraBold.woff deleted file mode 100755 index 320f5c1..0000000 Binary files a/static/fonts/Inter-ExtraBold.woff and /dev/null differ diff --git a/static/fonts/Inter-ExtraBold.woff2 b/static/fonts/Inter-ExtraBold.woff2 deleted file mode 100755 index b763558..0000000 Binary files a/static/fonts/Inter-ExtraBold.woff2 and /dev/null differ diff --git a/static/fonts/Inter-ExtraBoldItalic.eot b/static/fonts/Inter-ExtraBoldItalic.eot deleted file mode 100755 index 1b155c4..0000000 Binary files a/static/fonts/Inter-ExtraBoldItalic.eot and /dev/null differ diff --git a/static/fonts/Inter-ExtraBoldItalic.ttf b/static/fonts/Inter-ExtraBoldItalic.ttf deleted file mode 100755 index d4497d5..0000000 Binary files a/static/fonts/Inter-ExtraBoldItalic.ttf and /dev/null differ diff --git a/static/fonts/Inter-ExtraBoldItalic.woff b/static/fonts/Inter-ExtraBoldItalic.woff deleted file mode 100755 index a30409f..0000000 Binary files a/static/fonts/Inter-ExtraBoldItalic.woff and /dev/null differ diff --git a/static/fonts/Inter-ExtraBoldItalic.woff2 b/static/fonts/Inter-ExtraBoldItalic.woff2 deleted file mode 100755 index 1c4ae82..0000000 Binary files a/static/fonts/Inter-ExtraBoldItalic.woff2 and /dev/null differ diff --git a/static/fonts/Inter-ExtraLightBETA.eot b/static/fonts/Inter-ExtraLightBETA.eot deleted file mode 100755 index 708e5e2..0000000 Binary files a/static/fonts/Inter-ExtraLightBETA.eot and /dev/null differ diff --git a/static/fonts/Inter-ExtraLightBETA.ttf b/static/fonts/Inter-ExtraLightBETA.ttf deleted file mode 100755 index a1f1dd4..0000000 Binary files a/static/fonts/Inter-ExtraLightBETA.ttf and /dev/null differ diff --git a/static/fonts/Inter-ExtraLightBETA.woff b/static/fonts/Inter-ExtraLightBETA.woff deleted file mode 100755 index 433d926..0000000 Binary files a/static/fonts/Inter-ExtraLightBETA.woff and /dev/null differ diff --git a/static/fonts/Inter-ExtraLightBETA.woff2 b/static/fonts/Inter-ExtraLightBETA.woff2 deleted file mode 100755 index c568ccc..0000000 Binary files a/static/fonts/Inter-ExtraLightBETA.woff2 and /dev/null differ diff --git a/static/fonts/Inter-ExtraLightItalicBETA.eot b/static/fonts/Inter-ExtraLightItalicBETA.eot deleted file mode 100755 index 30ec3ce..0000000 Binary files a/static/fonts/Inter-ExtraLightItalicBETA.eot and /dev/null differ diff --git a/static/fonts/Inter-ExtraLightItalicBETA.ttf b/static/fonts/Inter-ExtraLightItalicBETA.ttf deleted file mode 100755 index c80ea10..0000000 Binary files a/static/fonts/Inter-ExtraLightItalicBETA.ttf and /dev/null differ diff --git a/static/fonts/Inter-ExtraLightItalicBETA.woff b/static/fonts/Inter-ExtraLightItalicBETA.woff deleted file mode 100755 index 92f2ba8..0000000 Binary files a/static/fonts/Inter-ExtraLightItalicBETA.woff and /dev/null differ diff --git a/static/fonts/Inter-ExtraLightItalicBETA.woff2 b/static/fonts/Inter-ExtraLightItalicBETA.woff2 deleted file mode 100755 index e9ba9f3..0000000 Binary files a/static/fonts/Inter-ExtraLightItalicBETA.woff2 and /dev/null differ diff --git a/static/fonts/Inter-Italic.eot b/static/fonts/Inter-Italic.eot deleted file mode 100755 index e9e7e11..0000000 Binary files a/static/fonts/Inter-Italic.eot and /dev/null differ diff --git a/static/fonts/Inter-Italic.ttf b/static/fonts/Inter-Italic.ttf deleted file mode 100755 index 203c05b..0000000 Binary files a/static/fonts/Inter-Italic.ttf and /dev/null differ diff --git a/static/fonts/Inter-Italic.woff b/static/fonts/Inter-Italic.woff deleted file mode 100755 index 28800b0..0000000 Binary files a/static/fonts/Inter-Italic.woff and /dev/null differ diff --git a/static/fonts/Inter-Italic.woff2 b/static/fonts/Inter-Italic.woff2 deleted file mode 100755 index 2ae1be9..0000000 Binary files a/static/fonts/Inter-Italic.woff2 and /dev/null differ diff --git a/static/fonts/Inter-LightBETA.eot b/static/fonts/Inter-LightBETA.eot deleted file mode 100755 index 3677dd6..0000000 Binary files a/static/fonts/Inter-LightBETA.eot and /dev/null differ diff --git a/static/fonts/Inter-LightBETA.ttf b/static/fonts/Inter-LightBETA.ttf deleted file mode 100755 index fed37df..0000000 Binary files a/static/fonts/Inter-LightBETA.ttf and /dev/null differ diff --git a/static/fonts/Inter-LightBETA.woff b/static/fonts/Inter-LightBETA.woff deleted file mode 100755 index 2ef728e..0000000 Binary files a/static/fonts/Inter-LightBETA.woff and /dev/null differ diff --git a/static/fonts/Inter-LightBETA.woff2 b/static/fonts/Inter-LightBETA.woff2 deleted file mode 100755 index 3e88d81..0000000 Binary files a/static/fonts/Inter-LightBETA.woff2 and /dev/null differ diff --git a/static/fonts/Inter-LightItalicBETA.eot b/static/fonts/Inter-LightItalicBETA.eot deleted file mode 100755 index 0fe6443..0000000 Binary files a/static/fonts/Inter-LightItalicBETA.eot and /dev/null differ diff --git a/static/fonts/Inter-LightItalicBETA.ttf b/static/fonts/Inter-LightItalicBETA.ttf deleted file mode 100755 index afd591f..0000000 Binary files a/static/fonts/Inter-LightItalicBETA.ttf and /dev/null differ diff --git a/static/fonts/Inter-LightItalicBETA.woff b/static/fonts/Inter-LightItalicBETA.woff deleted file mode 100755 index 06f57cf..0000000 Binary files a/static/fonts/Inter-LightItalicBETA.woff and /dev/null differ diff --git a/static/fonts/Inter-LightItalicBETA.woff2 b/static/fonts/Inter-LightItalicBETA.woff2 deleted file mode 100755 index bdcd127..0000000 Binary files a/static/fonts/Inter-LightItalicBETA.woff2 and /dev/null differ diff --git a/static/fonts/Inter-Medium.eot b/static/fonts/Inter-Medium.eot deleted file mode 100755 index 61976d2..0000000 Binary files a/static/fonts/Inter-Medium.eot and /dev/null differ diff --git a/static/fonts/Inter-Medium.ttf b/static/fonts/Inter-Medium.ttf deleted file mode 100755 index 4c98533..0000000 Binary files a/static/fonts/Inter-Medium.ttf and /dev/null differ diff --git a/static/fonts/Inter-Medium.woff b/static/fonts/Inter-Medium.woff deleted file mode 100755 index aaa3341..0000000 Binary files a/static/fonts/Inter-Medium.woff and /dev/null differ diff --git a/static/fonts/Inter-Medium.woff2 b/static/fonts/Inter-Medium.woff2 deleted file mode 100755 index bbdf8fe..0000000 Binary files a/static/fonts/Inter-Medium.woff2 and /dev/null differ diff --git a/static/fonts/Inter-MediumItalic.eot b/static/fonts/Inter-MediumItalic.eot deleted file mode 100755 index 4214cfe..0000000 Binary files a/static/fonts/Inter-MediumItalic.eot and /dev/null differ diff --git a/static/fonts/Inter-MediumItalic.ttf b/static/fonts/Inter-MediumItalic.ttf deleted file mode 100755 index 71bfd2f..0000000 Binary files a/static/fonts/Inter-MediumItalic.ttf and /dev/null differ diff --git a/static/fonts/Inter-MediumItalic.woff b/static/fonts/Inter-MediumItalic.woff deleted file mode 100755 index 5cb5bc4..0000000 Binary files a/static/fonts/Inter-MediumItalic.woff and /dev/null differ diff --git a/static/fonts/Inter-MediumItalic.woff2 b/static/fonts/Inter-MediumItalic.woff2 deleted file mode 100755 index 2cbc81b..0000000 Binary files a/static/fonts/Inter-MediumItalic.woff2 and /dev/null differ diff --git a/static/fonts/Inter-Regular.eot b/static/fonts/Inter-Regular.eot deleted file mode 100755 index df3705f..0000000 Binary files a/static/fonts/Inter-Regular.eot and /dev/null differ diff --git a/static/fonts/Inter-Regular.ttf b/static/fonts/Inter-Regular.ttf deleted file mode 100755 index e3fc23b..0000000 Binary files a/static/fonts/Inter-Regular.ttf and /dev/null differ diff --git a/static/fonts/Inter-Regular.woff b/static/fonts/Inter-Regular.woff deleted file mode 100755 index a85ed5d..0000000 Binary files a/static/fonts/Inter-Regular.woff and /dev/null differ diff --git a/static/fonts/Inter-Regular.woff2 b/static/fonts/Inter-Regular.woff2 deleted file mode 100755 index a9cc52b..0000000 Binary files a/static/fonts/Inter-Regular.woff2 and /dev/null differ diff --git a/static/fonts/Inter-SemiBold.eot b/static/fonts/Inter-SemiBold.eot deleted file mode 100755 index cf1f956..0000000 Binary files a/static/fonts/Inter-SemiBold.eot and /dev/null differ diff --git a/static/fonts/Inter-SemiBold.ttf b/static/fonts/Inter-SemiBold.ttf deleted file mode 100755 index 32ed95a..0000000 Binary files a/static/fonts/Inter-SemiBold.ttf and /dev/null differ diff --git a/static/fonts/Inter-SemiBold.woff b/static/fonts/Inter-SemiBold.woff deleted file mode 100755 index af2be95..0000000 Binary files a/static/fonts/Inter-SemiBold.woff and /dev/null differ diff --git a/static/fonts/Inter-SemiBold.woff2 b/static/fonts/Inter-SemiBold.woff2 deleted file mode 100755 index 500f1c5..0000000 Binary files a/static/fonts/Inter-SemiBold.woff2 and /dev/null differ diff --git a/static/fonts/Inter-SemiBoldItalic.eot b/static/fonts/Inter-SemiBoldItalic.eot deleted file mode 100755 index 7f40dcf..0000000 Binary files a/static/fonts/Inter-SemiBoldItalic.eot and /dev/null differ diff --git a/static/fonts/Inter-SemiBoldItalic.ttf b/static/fonts/Inter-SemiBoldItalic.ttf deleted file mode 100755 index 5474d89..0000000 Binary files a/static/fonts/Inter-SemiBoldItalic.ttf and /dev/null differ diff --git a/static/fonts/Inter-SemiBoldItalic.woff b/static/fonts/Inter-SemiBoldItalic.woff deleted file mode 100755 index 16e9576..0000000 Binary files a/static/fonts/Inter-SemiBoldItalic.woff and /dev/null differ diff --git a/static/fonts/Inter-SemiBoldItalic.woff2 b/static/fonts/Inter-SemiBoldItalic.woff2 deleted file mode 100755 index be77200..0000000 Binary files a/static/fonts/Inter-SemiBoldItalic.woff2 and /dev/null differ diff --git a/static/fonts/Inter-ThinBETA.eot b/static/fonts/Inter-ThinBETA.eot deleted file mode 100755 index f13fbbf..0000000 Binary files a/static/fonts/Inter-ThinBETA.eot and /dev/null differ diff --git a/static/fonts/Inter-ThinBETA.ttf b/static/fonts/Inter-ThinBETA.ttf deleted file mode 100755 index a38dfbd..0000000 Binary files a/static/fonts/Inter-ThinBETA.ttf and /dev/null differ diff --git a/static/fonts/Inter-ThinBETA.woff b/static/fonts/Inter-ThinBETA.woff deleted file mode 100755 index d44091d..0000000 Binary files a/static/fonts/Inter-ThinBETA.woff and /dev/null differ diff --git a/static/fonts/Inter-ThinBETA.woff2 b/static/fonts/Inter-ThinBETA.woff2 deleted file mode 100755 index effb4b4..0000000 Binary files a/static/fonts/Inter-ThinBETA.woff2 and /dev/null differ diff --git a/static/fonts/Inter-ThinItalicBETA.eot b/static/fonts/Inter-ThinItalicBETA.eot deleted file mode 100755 index 911e0b5..0000000 Binary files a/static/fonts/Inter-ThinItalicBETA.eot and /dev/null differ diff --git a/static/fonts/Inter-ThinItalicBETA.ttf b/static/fonts/Inter-ThinItalicBETA.ttf deleted file mode 100755 index be10eab..0000000 Binary files a/static/fonts/Inter-ThinItalicBETA.ttf and /dev/null differ diff --git a/static/fonts/Inter-ThinItalicBETA.woff b/static/fonts/Inter-ThinItalicBETA.woff deleted file mode 100755 index f1bc20c..0000000 Binary files a/static/fonts/Inter-ThinItalicBETA.woff and /dev/null differ diff --git a/static/fonts/Inter-ThinItalicBETA.woff2 b/static/fonts/Inter-ThinItalicBETA.woff2 deleted file mode 100755 index 6f1d707..0000000 Binary files a/static/fonts/Inter-ThinItalicBETA.woff2 and /dev/null differ diff --git a/static/fonts/demo.html b/static/fonts/demo.html deleted file mode 100755 index 5b0e82f..0000000 --- a/static/fonts/demo.html +++ /dev/null @@ -1,649 +0,0 @@ - - - - - - - - - Transfonter demo - - - - -
-
-

Inter Bold Italic

-
.your-style {
-    font-family: 'Inter';
-    font-weight: bold;
-    font-style: italic;
-}
-
-

- abcdefghijklmnopqrstuvwxyz
-ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 0123456789.:,;()*!?'@#<>$%&^+-=~ -

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-
-
-
-

Inter Medium Italic

-
.your-style {
-    font-family: 'Inter';
-    font-weight: 500;
-    font-style: italic;
-}
-
-

- abcdefghijklmnopqrstuvwxyz
-ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 0123456789.:,;()*!?'@#<>$%&^+-=~ -

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-
-
-
-

Inter Thin Italic BETA

-
.your-style {
-    font-family: 'Inter';
-    font-weight: 100;
-    font-style: italic;
-}
-
-

- abcdefghijklmnopqrstuvwxyz
-ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 0123456789.:,;()*!?'@#<>$%&^+-=~ -

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-
-
-
-

Inter Regular

-
.your-style {
-    font-family: 'Inter';
-    font-weight: normal;
-    font-style: normal;
-}
-
-

- abcdefghijklmnopqrstuvwxyz
-ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 0123456789.:,;()*!?'@#<>$%&^+-=~ -

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-
-
-
-

Inter Black

-
.your-style {
-    font-family: 'Inter';
-    font-weight: 900;
-    font-style: normal;
-}
-
-

- abcdefghijklmnopqrstuvwxyz
-ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 0123456789.:,;()*!?'@#<>$%&^+-=~ -

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-
-
-
-

Inter Black Italic

-
.your-style {
-    font-family: 'Inter';
-    font-weight: 900;
-    font-style: italic;
-}
-
-

- abcdefghijklmnopqrstuvwxyz
-ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 0123456789.:,;()*!?'@#<>$%&^+-=~ -

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-
-
-
-

Inter Light BETA

-
.your-style {
-    font-family: 'Inter';
-    font-weight: 300;
-    font-style: normal;
-}
-
-

- abcdefghijklmnopqrstuvwxyz
-ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 0123456789.:,;()*!?'@#<>$%&^+-=~ -

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-
-
-
-

Inter Semi Bold

-
.your-style {
-    font-family: 'Inter';
-    font-weight: 600;
-    font-style: normal;
-}
-
-

- abcdefghijklmnopqrstuvwxyz
-ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 0123456789.:,;()*!?'@#<>$%&^+-=~ -

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-
-
-
-

Inter Extra Bold Italic

-
.your-style {
-    font-family: 'Inter';
-    font-weight: 800;
-    font-style: italic;
-}
-
-

- abcdefghijklmnopqrstuvwxyz
-ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 0123456789.:,;()*!?'@#<>$%&^+-=~ -

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-
-
-
-

Inter Bold

-
.your-style {
-    font-family: 'Inter';
-    font-weight: bold;
-    font-style: normal;
-}
-
-

- abcdefghijklmnopqrstuvwxyz
-ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 0123456789.:,;()*!?'@#<>$%&^+-=~ -

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-
-
-
-

Inter Extra Light Italic BETA

-
.your-style {
-    font-family: 'Inter';
-    font-weight: 200;
-    font-style: italic;
-}
-
-

- abcdefghijklmnopqrstuvwxyz
-ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 0123456789.:,;()*!?'@#<>$%&^+-=~ -

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-
-
-
-

Inter Extra Light BETA

-
.your-style {
-    font-family: 'Inter';
-    font-weight: 200;
-    font-style: normal;
-}
-
-

- abcdefghijklmnopqrstuvwxyz
-ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 0123456789.:,;()*!?'@#<>$%&^+-=~ -

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-
-
-
-

Inter Extra Bold

-
.your-style {
-    font-family: 'Inter';
-    font-weight: 800;
-    font-style: normal;
-}
-
-

- abcdefghijklmnopqrstuvwxyz
-ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 0123456789.:,;()*!?'@#<>$%&^+-=~ -

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-
-
-
-

Inter Thin BETA

-
.your-style {
-    font-family: 'Inter';
-    font-weight: 100;
-    font-style: normal;
-}
-
-

- abcdefghijklmnopqrstuvwxyz
-ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 0123456789.:,;()*!?'@#<>$%&^+-=~ -

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-
-
-
-

Inter Light Italic BETA

-
.your-style {
-    font-family: 'Inter';
-    font-weight: 300;
-    font-style: italic;
-}
-
-

- abcdefghijklmnopqrstuvwxyz
-ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 0123456789.:,;()*!?'@#<>$%&^+-=~ -

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-
-
-
-

Inter Italic

-
.your-style {
-    font-family: 'Inter';
-    font-weight: normal;
-    font-style: italic;
-}
-
-

- abcdefghijklmnopqrstuvwxyz
-ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 0123456789.:,;()*!?'@#<>$%&^+-=~ -

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-
-
-
-

Inter Semi Bold Italic

-
.your-style {
-    font-family: 'Inter';
-    font-weight: 600;
-    font-style: italic;
-}
-
-

- abcdefghijklmnopqrstuvwxyz
-ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 0123456789.:,;()*!?'@#<>$%&^+-=~ -

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-
-
-
-

Inter Medium

-
.your-style {
-    font-family: 'Inter';
-    font-weight: 500;
-    font-style: normal;
-}
-
-

- abcdefghijklmnopqrstuvwxyz
-ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 0123456789.:,;()*!?'@#<>$%&^+-=~ -

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-

The quick brown fox jumps over the lazy dog.

-
-
-
- - \ No newline at end of file diff --git a/static/fonts/montserrat-v25-latin_cyrillic-300.eot b/static/fonts/montserrat-v25-latin_cyrillic-300.eot new file mode 100644 index 0000000..3124f54 Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-300.eot differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-300.svg b/static/fonts/montserrat-v25-latin_cyrillic-300.svg new file mode 100644 index 0000000..7fdec45 --- /dev/null +++ b/static/fonts/montserrat-v25-latin_cyrillic-300.svg @@ -0,0 +1,326 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/fonts/montserrat-v25-latin_cyrillic-300.ttf b/static/fonts/montserrat-v25-latin_cyrillic-300.ttf new file mode 100644 index 0000000..7ac3cc3 Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-300.ttf differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-300.woff b/static/fonts/montserrat-v25-latin_cyrillic-300.woff new file mode 100644 index 0000000..6b843df Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-300.woff differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-300.woff2 b/static/fonts/montserrat-v25-latin_cyrillic-300.woff2 new file mode 100644 index 0000000..0e41bed Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-300.woff2 differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-300italic.eot b/static/fonts/montserrat-v25-latin_cyrillic-300italic.eot new file mode 100644 index 0000000..cf03960 Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-300italic.eot differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-300italic.svg b/static/fonts/montserrat-v25-latin_cyrillic-300italic.svg new file mode 100644 index 0000000..a9813e1 --- /dev/null +++ b/static/fonts/montserrat-v25-latin_cyrillic-300italic.svg @@ -0,0 +1,329 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/fonts/montserrat-v25-latin_cyrillic-300italic.ttf b/static/fonts/montserrat-v25-latin_cyrillic-300italic.ttf new file mode 100644 index 0000000..3fa63e0 Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-300italic.ttf differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-300italic.woff b/static/fonts/montserrat-v25-latin_cyrillic-300italic.woff new file mode 100644 index 0000000..e61ad04 Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-300italic.woff differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-300italic.woff2 b/static/fonts/montserrat-v25-latin_cyrillic-300italic.woff2 new file mode 100644 index 0000000..f0c7ff7 Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-300italic.woff2 differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-500.eot b/static/fonts/montserrat-v25-latin_cyrillic-500.eot new file mode 100644 index 0000000..6efafab Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-500.eot differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-500.svg b/static/fonts/montserrat-v25-latin_cyrillic-500.svg new file mode 100644 index 0000000..590ffa5 --- /dev/null +++ b/static/fonts/montserrat-v25-latin_cyrillic-500.svg @@ -0,0 +1,328 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/fonts/montserrat-v25-latin_cyrillic-500.ttf b/static/fonts/montserrat-v25-latin_cyrillic-500.ttf new file mode 100644 index 0000000..90151f9 Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-500.ttf differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-500.woff b/static/fonts/montserrat-v25-latin_cyrillic-500.woff new file mode 100644 index 0000000..5547ed5 Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-500.woff differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-500.woff2 b/static/fonts/montserrat-v25-latin_cyrillic-500.woff2 new file mode 100644 index 0000000..0343dd2 Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-500.woff2 differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-500italic.eot b/static/fonts/montserrat-v25-latin_cyrillic-500italic.eot new file mode 100644 index 0000000..6d28d12 Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-500italic.eot differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-500italic.svg b/static/fonts/montserrat-v25-latin_cyrillic-500italic.svg new file mode 100644 index 0000000..0a99375 --- /dev/null +++ b/static/fonts/montserrat-v25-latin_cyrillic-500italic.svg @@ -0,0 +1,331 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/fonts/montserrat-v25-latin_cyrillic-500italic.ttf b/static/fonts/montserrat-v25-latin_cyrillic-500italic.ttf new file mode 100644 index 0000000..355b6bd Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-500italic.ttf differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-500italic.woff b/static/fonts/montserrat-v25-latin_cyrillic-500italic.woff new file mode 100644 index 0000000..8aaf299 Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-500italic.woff differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-500italic.woff2 b/static/fonts/montserrat-v25-latin_cyrillic-500italic.woff2 new file mode 100644 index 0000000..2230f88 Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-500italic.woff2 differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-700.eot b/static/fonts/montserrat-v25-latin_cyrillic-700.eot new file mode 100644 index 0000000..6343a1c Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-700.eot differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-700.svg b/static/fonts/montserrat-v25-latin_cyrillic-700.svg new file mode 100644 index 0000000..8bcf5f3 --- /dev/null +++ b/static/fonts/montserrat-v25-latin_cyrillic-700.svg @@ -0,0 +1,329 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/fonts/montserrat-v25-latin_cyrillic-700.ttf b/static/fonts/montserrat-v25-latin_cyrillic-700.ttf new file mode 100644 index 0000000..0b74402 Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-700.ttf differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-700.woff b/static/fonts/montserrat-v25-latin_cyrillic-700.woff new file mode 100644 index 0000000..6cf0930 Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-700.woff differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-700.woff2 b/static/fonts/montserrat-v25-latin_cyrillic-700.woff2 new file mode 100644 index 0000000..808444c Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-700.woff2 differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-700italic.eot b/static/fonts/montserrat-v25-latin_cyrillic-700italic.eot new file mode 100644 index 0000000..ad1db05 Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-700italic.eot differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-700italic.svg b/static/fonts/montserrat-v25-latin_cyrillic-700italic.svg new file mode 100644 index 0000000..d2a7dca --- /dev/null +++ b/static/fonts/montserrat-v25-latin_cyrillic-700italic.svg @@ -0,0 +1,332 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/fonts/montserrat-v25-latin_cyrillic-700italic.ttf b/static/fonts/montserrat-v25-latin_cyrillic-700italic.ttf new file mode 100644 index 0000000..354ad03 Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-700italic.ttf differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-700italic.woff b/static/fonts/montserrat-v25-latin_cyrillic-700italic.woff new file mode 100644 index 0000000..98a8076 Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-700italic.woff differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-700italic.woff2 b/static/fonts/montserrat-v25-latin_cyrillic-700italic.woff2 new file mode 100644 index 0000000..660699c Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-700italic.woff2 differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-regular.eot b/static/fonts/montserrat-v25-latin_cyrillic-regular.eot new file mode 100644 index 0000000..e99ecf0 Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-regular.eot differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-regular.svg b/static/fonts/montserrat-v25-latin_cyrillic-regular.svg new file mode 100644 index 0000000..b0675d7 --- /dev/null +++ b/static/fonts/montserrat-v25-latin_cyrillic-regular.svg @@ -0,0 +1,327 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/fonts/montserrat-v25-latin_cyrillic-regular.ttf b/static/fonts/montserrat-v25-latin_cyrillic-regular.ttf new file mode 100644 index 0000000..0f37275 Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-regular.ttf differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-regular.woff b/static/fonts/montserrat-v25-latin_cyrillic-regular.woff new file mode 100644 index 0000000..ea4fd71 Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-regular.woff differ diff --git a/static/fonts/montserrat-v25-latin_cyrillic-regular.woff2 b/static/fonts/montserrat-v25-latin_cyrillic-regular.woff2 new file mode 100644 index 0000000..c6a29fe Binary files /dev/null and b/static/fonts/montserrat-v25-latin_cyrillic-regular.woff2 differ diff --git a/static/fonts/stylesheet.css b/static/fonts/stylesheet.css index 431c6f4..ffe34ea 100755 --- a/static/fonts/stylesheet.css +++ b/static/fonts/stylesheet.css @@ -1,216 +1,97 @@ +/* montserrat-300 - latin_cyrillic */ @font-face { - font-family: 'Inter'; - src: url('Inter-BoldItalic.eot'); - src: local('Inter Bold Italic'), local('Inter-BoldItalic'), - url('Inter-BoldItalic.eot?#iefix') format('embedded-opentype'), - url('Inter-BoldItalic.woff2') format('woff2'), - url('Inter-BoldItalic.woff') format('woff'), - url('Inter-BoldItalic.ttf') format('truetype'); - font-weight: bold; - font-style: italic; + font-family: 'Montserrat'; + font-style: normal; + font-weight: 300; + src: url('montserrat-v25-latin_cyrillic-300.eot'); /* IE9 Compat Modes */ + src: local(''), + url('montserrat-v25-latin_cyrillic-300.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('montserrat-v25-latin_cyrillic-300.woff2') format('woff2'), /* Super Modern Browsers */ + url('montserrat-v25-latin_cyrillic-300.woff') format('woff'), /* Modern Browsers */ + url('montserrat-v25-latin_cyrillic-300.ttf') format('truetype'), /* Safari, Android, iOS */ + url('montserrat-v25-latin_cyrillic-300.svg#Montserrat') format('svg'); /* Legacy iOS */ } +/* montserrat-regular - latin_cyrillic */ @font-face { - font-family: 'Inter'; - src: url('Inter-MediumItalic.eot'); - src: local('Inter Medium Italic'), local('Inter-MediumItalic'), - url('Inter-MediumItalic.eot?#iefix') format('embedded-opentype'), - url('Inter-MediumItalic.woff2') format('woff2'), - url('Inter-MediumItalic.woff') format('woff'), - url('Inter-MediumItalic.ttf') format('truetype'); - font-weight: 500; - font-style: italic; + font-family: 'Montserrat'; + font-style: normal; + font-weight: 400; + src: url('montserrat-v25-latin_cyrillic-regular.eot'); /* IE9 Compat Modes */ + src: local(''), + url('montserrat-v25-latin_cyrillic-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('montserrat-v25-latin_cyrillic-regular.woff2') format('woff2'), /* Super Modern Browsers */ + url('montserrat-v25-latin_cyrillic-regular.woff') format('woff'), /* Modern Browsers */ + url('montserrat-v25-latin_cyrillic-regular.ttf') format('truetype'), /* Safari, Android, iOS */ + url('montserrat-v25-latin_cyrillic-regular.svg#Montserrat') format('svg'); /* Legacy iOS */ } +/* montserrat-500 - latin_cyrillic */ @font-face { - font-family: 'Inter'; - src: url('Inter-ThinItalicBETA.eot'); - src: local('Inter Thin Italic BETA'), local('Inter-ThinItalicBETA'), - url('Inter-ThinItalicBETA.eot?#iefix') format('embedded-opentype'), - url('Inter-ThinItalicBETA.woff2') format('woff2'), - url('Inter-ThinItalicBETA.woff') format('woff'), - url('Inter-ThinItalicBETA.ttf') format('truetype'); - font-weight: 100; - font-style: italic; + font-family: 'Montserrat'; + font-style: normal; + font-weight: 500; + src: url('montserrat-v25-latin_cyrillic-500.eot'); /* IE9 Compat Modes */ + src: local(''), + url('montserrat-v25-latin_cyrillic-500.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('montserrat-v25-latin_cyrillic-500.woff2') format('woff2'), /* Super Modern Browsers */ + url('montserrat-v25-latin_cyrillic-500.woff') format('woff'), /* Modern Browsers */ + url('montserrat-v25-latin_cyrillic-500.ttf') format('truetype'), /* Safari, Android, iOS */ + url('montserrat-v25-latin_cyrillic-500.svg#Montserrat') format('svg'); /* Legacy iOS */ } +/* montserrat-700 - latin_cyrillic */ @font-face { - font-family: 'Inter'; - src: url('Inter-Regular.eot'); - src: local('Inter Regular'), local('Inter-Regular'), - url('Inter-Regular.eot?#iefix') format('embedded-opentype'), - url('Inter-Regular.woff2') format('woff2'), - url('Inter-Regular.woff') format('woff'), - url('Inter-Regular.ttf') format('truetype'); - font-weight: normal; - font-style: normal; + font-family: 'Montserrat'; + font-style: normal; + font-weight: 700; + src: url('montserrat-v25-latin_cyrillic-700.eot'); /* IE9 Compat Modes */ + src: local(''), + url('montserrat-v25-latin_cyrillic-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('montserrat-v25-latin_cyrillic-700.woff2') format('woff2'), /* Super Modern Browsers */ + url('montserrat-v25-latin_cyrillic-700.woff') format('woff'), /* Modern Browsers */ + url('montserrat-v25-latin_cyrillic-700.ttf') format('truetype'), /* Safari, Android, iOS */ + url('montserrat-v25-latin_cyrillic-700.svg#Montserrat') format('svg'); /* Legacy iOS */ } +/* montserrat-300italic - latin_cyrillic */ @font-face { - font-family: 'Inter'; - src: url('Inter-Black.eot'); - src: local('Inter Black'), local('Inter-Black'), - url('Inter-Black.eot?#iefix') format('embedded-opentype'), - url('Inter-Black.woff2') format('woff2'), - url('Inter-Black.woff') format('woff'), - url('Inter-Black.ttf') format('truetype'); - font-weight: 900; - font-style: normal; + font-family: 'Montserrat'; + font-style: italic; + font-weight: 300; + src: url('montserrat-v25-latin_cyrillic-300italic.eot'); /* IE9 Compat Modes */ + src: local(''), + url('montserrat-v25-latin_cyrillic-300italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('montserrat-v25-latin_cyrillic-300italic.woff2') format('woff2'), /* Super Modern Browsers */ + url('montserrat-v25-latin_cyrillic-300italic.woff') format('woff'), /* Modern Browsers */ + url('montserrat-v25-latin_cyrillic-300italic.ttf') format('truetype'), /* Safari, Android, iOS */ + url('montserrat-v25-latin_cyrillic-300italic.svg#Montserrat') format('svg'); /* Legacy iOS */ } +/* montserrat-500italic - latin_cyrillic */ @font-face { - font-family: 'Inter'; - src: url('Inter-BlackItalic.eot'); - src: local('Inter Black Italic'), local('Inter-BlackItalic'), - url('Inter-BlackItalic.eot?#iefix') format('embedded-opentype'), - url('Inter-BlackItalic.woff2') format('woff2'), - url('Inter-BlackItalic.woff') format('woff'), - url('Inter-BlackItalic.ttf') format('truetype'); - font-weight: 900; - font-style: italic; + font-family: 'Montserrat'; + font-style: italic; + font-weight: 500; + src: url('montserrat-v25-latin_cyrillic-500italic.eot'); /* IE9 Compat Modes */ + src: local(''), + url('montserrat-v25-latin_cyrillic-500italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('montserrat-v25-latin_cyrillic-500italic.woff2') format('woff2'), /* Super Modern Browsers */ + url('montserrat-v25-latin_cyrillic-500italic.woff') format('woff'), /* Modern Browsers */ + url('montserrat-v25-latin_cyrillic-500italic.ttf') format('truetype'), /* Safari, Android, iOS */ + url('montserrat-v25-latin_cyrillic-500italic.svg#Montserrat') format('svg'); /* Legacy iOS */ } +/* montserrat-700italic - latin_cyrillic */ @font-face { - font-family: 'Inter'; - src: url('Inter-LightBETA.eot'); - src: local('Inter Light BETA'), local('Inter-LightBETA'), - url('Inter-LightBETA.eot?#iefix') format('embedded-opentype'), - url('Inter-LightBETA.woff2') format('woff2'), - url('Inter-LightBETA.woff') format('woff'), - url('Inter-LightBETA.ttf') format('truetype'); - font-weight: 300; - font-style: normal; + font-family: 'Montserrat'; + font-style: italic; + font-weight: 700; + src: url('montserrat-v25-latin_cyrillic-700italic.eot'); /* IE9 Compat Modes */ + src: local(''), + url('montserrat-v25-latin_cyrillic-700italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('montserrat-v25-latin_cyrillic-700italic.woff2') format('woff2'), /* Super Modern Browsers */ + url('montserrat-v25-latin_cyrillic-700italic.woff') format('woff'), /* Modern Browsers */ + url('montserrat-v25-latin_cyrillic-700italic.ttf') format('truetype'), /* Safari, Android, iOS */ + url('montserrat-v25-latin_cyrillic-700italic.svg#Montserrat') format('svg'); /* Legacy iOS */ } - -@font-face { - font-family: 'Inter'; - src: url('Inter-SemiBold.eot'); - src: local('Inter Semi Bold'), local('Inter-SemiBold'), - url('Inter-SemiBold.eot?#iefix') format('embedded-opentype'), - url('Inter-SemiBold.woff2') format('woff2'), - url('Inter-SemiBold.woff') format('woff'), - url('Inter-SemiBold.ttf') format('truetype'); - font-weight: 600; - font-style: normal; -} - -@font-face { - font-family: 'Inter'; - src: url('Inter-ExtraBoldItalic.eot'); - src: local('Inter Extra Bold Italic'), local('Inter-ExtraBoldItalic'), - url('Inter-ExtraBoldItalic.eot?#iefix') format('embedded-opentype'), - url('Inter-ExtraBoldItalic.woff2') format('woff2'), - url('Inter-ExtraBoldItalic.woff') format('woff'), - url('Inter-ExtraBoldItalic.ttf') format('truetype'); - font-weight: 800; - font-style: italic; -} - -@font-face { - font-family: 'Inter'; - src: url('Inter-Bold.eot'); - src: local('Inter Bold'), local('Inter-Bold'), - url('Inter-Bold.eot?#iefix') format('embedded-opentype'), - url('Inter-Bold.woff2') format('woff2'), - url('Inter-Bold.woff') format('woff'), - url('Inter-Bold.ttf') format('truetype'); - font-weight: bold; - font-style: normal; -} - -@font-face { - font-family: 'Inter'; - src: url('Inter-ExtraLightItalicBETA.eot'); - src: local('Inter Extra Light Italic BETA'), local('Inter-ExtraLightItalicBETA'), - url('Inter-ExtraLightItalicBETA.eot?#iefix') format('embedded-opentype'), - url('Inter-ExtraLightItalicBETA.woff2') format('woff2'), - url('Inter-ExtraLightItalicBETA.woff') format('woff'), - url('Inter-ExtraLightItalicBETA.ttf') format('truetype'); - font-weight: 200; - font-style: italic; -} - -@font-face { - font-family: 'Inter'; - src: url('Inter-ExtraLightBETA.eot'); - src: local('Inter Extra Light BETA'), local('Inter-ExtraLightBETA'), - url('Inter-ExtraLightBETA.eot?#iefix') format('embedded-opentype'), - url('Inter-ExtraLightBETA.woff2') format('woff2'), - url('Inter-ExtraLightBETA.woff') format('woff'), - url('Inter-ExtraLightBETA.ttf') format('truetype'); - font-weight: 200; - font-style: normal; -} - -@font-face { - font-family: 'Inter'; - src: url('Inter-ExtraBold.eot'); - src: local('Inter Extra Bold'), local('Inter-ExtraBold'), - url('Inter-ExtraBold.eot?#iefix') format('embedded-opentype'), - url('Inter-ExtraBold.woff2') format('woff2'), - url('Inter-ExtraBold.woff') format('woff'), - url('Inter-ExtraBold.ttf') format('truetype'); - font-weight: 800; - font-style: normal; -} - -@font-face { - font-family: 'Inter'; - src: url('Inter-ThinBETA.eot'); - src: local('Inter Thin BETA'), local('Inter-ThinBETA'), - url('Inter-ThinBETA.eot?#iefix') format('embedded-opentype'), - url('Inter-ThinBETA.woff2') format('woff2'), - url('Inter-ThinBETA.woff') format('woff'), - url('Inter-ThinBETA.ttf') format('truetype'); - font-weight: 100; - font-style: normal; -} - -@font-face { - font-family: 'Inter'; - src: url('Inter-LightItalicBETA.eot'); - src: local('Inter Light Italic BETA'), local('Inter-LightItalicBETA'), - url('Inter-LightItalicBETA.eot?#iefix') format('embedded-opentype'), - url('Inter-LightItalicBETA.woff2') format('woff2'), - url('Inter-LightItalicBETA.woff') format('woff'), - url('Inter-LightItalicBETA.ttf') format('truetype'); - font-weight: 300; - font-style: italic; -} - -@font-face { - font-family: 'Inter'; - src: url('Inter-Italic.eot'); - src: local('Inter Italic'), local('Inter-Italic'), - url('Inter-Italic.eot?#iefix') format('embedded-opentype'), - url('Inter-Italic.woff2') format('woff2'), - url('Inter-Italic.woff') format('woff'), - url('Inter-Italic.ttf') format('truetype'); - font-weight: normal; - font-style: italic; -} - -@font-face { - font-family: 'Inter'; - src: url('Inter-SemiBoldItalic.eot'); - src: local('Inter Semi Bold Italic'), local('Inter-SemiBoldItalic'), - url('Inter-SemiBoldItalic.eot?#iefix') format('embedded-opentype'), - url('Inter-SemiBoldItalic.woff2') format('woff2'), - url('Inter-SemiBoldItalic.woff') format('woff'), - url('Inter-SemiBoldItalic.ttf') format('truetype'); - font-weight: 600; - font-style: italic; -} - -@font-face { - font-family: 'Inter'; - src: url('Inter-Medium.eot'); - src: local('Inter Medium'), local('Inter-Medium'), - url('Inter-Medium.eot?#iefix') format('embedded-opentype'), - url('Inter-Medium.woff2') format('woff2'), - url('Inter-Medium.woff') format('woff'), - url('Inter-Medium.ttf') format('truetype'); - font-weight: 500; - font-style: normal; -} - diff --git a/static/images/services/bitwarden.svg b/static/images/services/bitwarden.svg new file mode 100644 index 0000000..7c7a642 --- /dev/null +++ b/static/images/services/bitwarden.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/static/images/services/deltachat.svg b/static/images/services/deltachat.svg new file mode 100644 index 0000000..8be261b --- /dev/null +++ b/static/images/services/deltachat.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/static/images/services/email.svg b/static/images/services/email.svg new file mode 100644 index 0000000..d06d951 --- /dev/null +++ b/static/images/services/email.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/static/images/services/gitea.svg b/static/images/services/gitea.svg new file mode 100644 index 0000000..cda78ce --- /dev/null +++ b/static/images/services/gitea.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/static/images/services/jitsi.svg b/static/images/services/jitsi.svg new file mode 100644 index 0000000..297fd25 --- /dev/null +++ b/static/images/services/jitsi.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/static/images/services/nextcloud.svg b/static/images/services/nextcloud.svg new file mode 100644 index 0000000..7cdcc3e --- /dev/null +++ b/static/images/services/nextcloud.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/static/images/services/openconnect.svg b/static/images/services/openconnect.svg new file mode 100644 index 0000000..c36b012 --- /dev/null +++ b/static/images/services/openconnect.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/images/services/pleroma.svg b/static/images/services/pleroma.svg new file mode 100644 index 0000000..694c63b --- /dev/null +++ b/static/images/services/pleroma.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + +