diff --git a/.DS_Store b/.DS_Store index 3ec14d99..d2c44ae0 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/CNAME b/CNAME index 363dcdd2..d7f0b61e 100644 --- a/CNAME +++ b/CNAME @@ -1 +1 @@ -frkn.org +frkn.org \ No newline at end of file diff --git a/donations.html b/donations.html index f8870680..649c1f7a 100644 --- a/donations.html +++ b/donations.html @@ -31,9 +31,7 @@

FRKN VPN

- +
Flighty Raptor Kicks Network
@@ -43,78 +41,17 @@
Flighty Raptor Kicks Network
-
- - - + + + - - diff --git a/index.html b/index.html index 817bd259..384d132c 100644 --- a/index.html +++ b/index.html @@ -104,13 +104,13 @@

FRKN VPN

-

Свободный VPN для свободных людей.

+

Свободный VPN для свободных людей.

Мы за свободу слова и против какой-либо цензуры.
- Делаем некоммерческий + Делаем некоммерческий Свободный VPN для свободных люд

- Сегодня свобода слова особенно уязвима, независимые СМИ запрещены, - людям промывают мозги пропагандой, сервисы ВПН блокируют, выражать - свою позицию и мнение опасно. Поэтому мы взялись за этот проект, он - некоммерческий, и здесь не преследуется никакой выгоды. Мы за - свободу слова и против какой-либо цензуры. Компания у нас небольшая, - но у нас большой потенциал. Вы можете поддержать нас донатами или - любым другим вкладом по улучшению сервиса. Даже заведение ишью в - проекте сильно нам поможет. + ЗДЕСЬ БУДЕТ ТЕКСТ // ВЕДУТСЯ ТЕХНИЧЕСКИЕ РАБОТЫ

@@ -141,7 +134,7 @@

Свободный VPN для свободных люд target="_blank" rel="noopener noreferrer" > - Установить WIREGUARD + Установить XRAY VLESS

Ptero @@ -180,7 +173,7 @@

Свободный VPN для свободных люд
  • @@ -190,72 +183,13 @@

    Свободный VPN для свободных люд -
    -
    -
    -
    - - -
    -
    - - -
    - - -
    -
    - -
    -
    -
    -
    -
    - +

  • - - diff --git a/installation-en.html b/installation-en.html deleted file mode 100644 index 17935b4a..00000000 --- a/installation-en.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - - FRKN VPN - - - - - - - - - - - - - - - - - - -
    -
    -
    -

    Installation

    - -

    iOS | Android

    -

    Main installation

    -
      -
    1. - Install the WireGuard app for your device ( - - iOS - - | - - Android - - ) -
    2. -
    3. Open the installed app
    4. -
    5. - In the top right corner, press - + -
    6. -
    7. - Select the - "Create from QR code" - option -
    8. -
    9. - Use your phone's camera to scan the QR code generated on the - website -
    10. -
    11. Done!
    12. -
    - -

    Installation from configuration file

    -
      -
    1. - Install the WireGuard app for your device ( - - iOS - - | - - Android - - ) -
    2. -
    3. - Download the configuration file by clicking on the - - "Download configuration file" - - button -
    4. -
    5. Open the installed app
    6. -
    7. - In the top right corner, press - + -
    8. -
    9. - Select the - "Create from file or archive" - option -
    10. -
    11. - Go to the folder where you saved the configuration file (it should - have the - .conf - extension) and select it -
    12. -
    13. Use the switch to turn the VPN on/off
    14. -
    15. Done!
    16. -
    - -

    MacOS | Windows

    -

    Installation from configuration file

    -
      -
    1. - Install the WireGuard app for your device ( - - MacOS - - | - Windows - ) -
    2. -
    3. - Download the configuration file by clicking on the - - "Download configuration file" - - button -
    4. -
    5. Open the installed app
    6. -
    7. - Click on the - "Import tunnels from file" - button -
    8. -
    9. - Go to the folder where you saved the configuration file and select - it -
    10. -
    11. - Click on the - "Connect" - button -
    12. -
    13. Done!
    14. -
    - -

    Linux

    -

    Installation from configuration file

    -
      -
    1. - Before installing, check available updates on your system. Install - them if it necessary: - - - # Ubuntu и Debian - sudo apt-get update && sudo apt-get upgrade - -
    2. -
    3. - Run - - WireGuard installation via your distribution's package manager - - : - - - # Ubuntu и Debian - sudo apt-get install wireguard - -
    4. -
    5. - Download the configuration file by clicking on the - - "Download configuration file" - - button -
    6. -
    7. - Move the downloaded configuration file into the - /etc/wireguard/ - directory: - - sudo mv [file path]/frkn.conf/ etc/wireguard/ -
    8. - -
    9. - Done! -
        -
      1. - Use - wg-quick - command, to start the connection: - - sudo wg-quick up frkn - -
        - - - /usr/bin/wg-quick: line 32: resolvconf: command not - found - - error: - -

        - If this error is thrown at the moment of trying to - connect, install the - resolvconf - package and try again: -

        - - - # Ubuntu и Debian - sudo apt-get install resolvconf && sudo wg-quick up frkn -
        -
      2. -
      3. - To find out the connection status, run run the following - command: - sudo wg show -
      4. -
      5. - Use - wg-quick - command with - down - attribute to turn off the connection: - - sudo wg-quick down frkn -
      6. -
      -
    10. -
    -
    - -
    -

    QR-code and configuration file

    - - - Download configuration file - - -
    - Install via QR-code -
    -
    -
    -
    - - - - - - - diff --git a/installation-ru.html b/installation-ru.html index a39138ff..3a9a46f0 100644 --- a/installation-ru.html +++ b/installation-ru.html @@ -1,4 +1,4 @@ - + @@ -16,6 +16,7 @@ + @@ -31,240 +32,31 @@

    FRKN VPN

    - - English - +
    Flighty Raptor Kicks Network
    -
    -
    -

    Установка

    - -

    iOS | Android

    -

    Основная установка

    -
      -
    1. - Установите приложение WireGuard для вашего устройства ( - - iOS - - | - - Android - - )
      - - Или можете воспользоваться клиентом - - AmneziaVPN -
      Инструкция тут -
    2. -
    3. Зайдите в установленное приложение
    4. -
    5. - В правом верхнем углу нажмите на - + -
    6. -
    7. - Выберите пункт - "Создать из QR-кода" -
    8. -
    9. - Наведите камеру телефона на сгенерированный QR-код на - сайте -
    10. -
    11. Готово!
    12. -
    - -

    Установка из файла конфигурации

    -
      -
    1. - Установите приложение WireGuard для вашего устройства ( - - iOS - - | - - Android - - ) -
    2. -
    3. - Скачайте файл конфигурации, нажав на кнопку - - "Скачать файл конфигурации" - -
    4. -
    5. Зайдите в установленное приложение
    6. -
    7. - В правом верхнем углу нажмите на - + -
    8. -
    9. - Выберите пункт - "Создать из файла или архива" -
    10. -
    11. - Перейдите в папку, куда вы скачали файл конфигурации (он должен - иметь расширение - .conf - ) и выберите его -
    12. -
    13. Переключайте ползунок, чтобы включать/выключать VPN
    14. -
    15. Готово!
    16. -
    - -

    MacOS | Windows

    -

    Установка из файла конфигурации

    -
      -
    1. - Установите приложение WireGuard для вашего устройства ( - - MacOS - - | - Windows - ) -
    2. -
    3. - Скачайте файл конфигурации, нажав на кнопку - - "Скачать файл конфигурации" - -
    4. -
    5. Зайдите в установленное приложение
    6. -
    7. - Нажмите на кнопку - "Импорт туннелей из файла" -
    8. -
    9. Выберите файл конфигурации, который вы скачали с сайта
    10. -
    11. - Нажмите кнопку - "Подключить" -
    12. -
    13. Готово!
    14. -
    - -

    Linux

    -

    Установка из файла конфигурации

    -
      -
    1. - Перед установкой проверьте наличие доступных обновлений в вашей - системе. При необходимости установите их: - - - # Ubuntu и Debian - sudo apt-get update && sudo apt-get upgrade - -
    2. -
    3. - Запустите - - установку WireGuard с помощью пакетного менеджера вашего - дистрибутива - - : - - - # Ubuntu и Debian - sudo apt-get install wireguard - -
    4. -
    5. - Скачайте файл конфигурации, нажав на кнопку - - "Скачать файл конфигурации" - -
    6. -
    7. - Переместите скачанный конфиг в директорию - /etc/wireguard/ - : - - sudo mv [путь до файла]/frkn.conf /etc/wireguard/ -
    8. - -
    9. - Готово! -
        -
      1. - Для установки соединения используйте команду - wg-quick - : - - sudo wg-quick up frkn +
        +
        +
        +
        +

        + По всем вопросам обращайтесь в ТГ +

        + @frkn_support +
        + И подписыайтесь на канал чтоб быть в курсе последних новостей + @frkn_org +
        -
        - - Ошибка - - /usr/bin/wg-quick: line 32: resolvconf: command not - found - - : - -

        - Если при попытке соединения выскочила эта ошибка — - установите пакет - resolvconf - и повторите попытку: -

        - - - # Ubuntu и Debian - sudo apt-get install resolvconf && sudo wg-quick up frkn - -
        -
      2. -
      3. - Для выяснения статуса подключения, используйте следующую - команду: - sudo wg show -
      4. -
      5. - Для отключения соединения используйте - wg-quick - , но с атрибутом - down - : - - sudo wg-quick down frkn -
      6. -
      -
    10. -
    -
    -
    -

    QR-код и файл конфигурации

    - - - Выберите сервер - - -
    - Установить с помощью QR кода +
    -
    - +

    + +
    - - - + diff --git a/media/video/screencasts/ios-screencast.h264.mp4 b/media/video/screencasts/ios-screencast.h264.mp4 deleted file mode 100644 index de0807ab..00000000 Binary files a/media/video/screencasts/ios-screencast.h264.mp4 and /dev/null differ diff --git a/media/video/screencasts/macos-screencast.h264.mp4 b/media/video/screencasts/macos-screencast.h264.mp4 deleted file mode 100644 index 56a80db5..00000000 Binary files a/media/video/screencasts/macos-screencast.h264.mp4 and /dev/null differ diff --git a/scripts/installation.js b/scripts/installation.js deleted file mode 100644 index 024076a8..00000000 --- a/scripts/installation.js +++ /dev/null @@ -1,138 +0,0 @@ -const Select = document.querySelector('.installation__select') -const Link = document.querySelector('.installation__link') -const ImageWrapper = document.querySelector('.installation__qr-wrapper') -const Image = document.querySelector('.installation__qr') -const Error = document.querySelector('.installation__error') - -/* Creating configs */ - -const createConfig = ({ iface, peer }) => ( -`[Interface] -Address = ${iface.address} -DNS = ${iface.dns} -PrivateKey = ${iface.key} - -[Peer] -PublicKey = ${peer.pubkey} -PresharedKey = ${peer.psk} -AllowedIPs = ${peer.allowed_ips} -Endpoint = ${peer.endpoint} -PersistentKeepalive = 25` -) - -const createURI = (text) => `data:text/plain;charset=utf-8,${encodeURIComponent(createConfig(text))}` - -/* Elements state */ - -const setLoadingSelect = (isLoading) => { - if (isLoading) { - Select.setAttribute('disabled', true) - Select.classList.add('loading') - } else { - Select.removeAttribute('disabled') - Select.classList.remove('loading') - } -} - -const setDisabledLink = (isDisabled) => { - if (isDisabled) { - Link.classList.add('disabled') - Link.innerHTML = Link.dataset.disabledText - } else { - Link.classList.remove('disabled') - Link.innerHTML = Link.dataset.text - } -} - -const setLoadingLink = (isLoading, data) => { - if (isLoading) { - Link.removeAttribute('href') - Link.removeAttribute('download') - } else { - Link.setAttribute('href', createURI(data)) - Link.setAttribute('download', 'frkn.conf') - } -} - -const setHidingImage = (isHiding, data) => { - if (isHiding) { - ImageWrapper.classList.add('disabled') - Image.removeAttribute('src') - } else { - const qrcode = new QRCode({ - content: createConfig(data), - padding: 0, - width: 256, - height: 256, - color: "#000000", - background: "transparent", - ecl: "M", - }) - - ImageWrapper.classList.remove('disabled') - Image.setAttribute('src', `data:image/svg+xml;utf8,${encodeURIComponent(qrcode.svg())}`) - } -} - -const setError = (isError) => { - if (isError) { - Error.classList.remove('hidden') - } else { - Error.classList.add('hidden') - } -} - -/* Fetch callbacks */ - -const setOptions = (data) => { - data.forEach((server) => { - const Option = document.createElement('option') - - Option.setAttribute('value', server.code) - Option.appendChild(document.createTextNode(server.name)) - - Select.appendChild(Option) - }) -} - -const setConfigs = (data) => { - setLoadingLink(false, data) - setHidingImage(false, data) -} - -/* Main */ - -fetch('https://api.frkn.org/locations') - .then((res) => res.json()) - .then((data) => setOptions(data)) - .catch(() => { - setError(true) - }) - .finally(() => { - setLoadingSelect(false) - }) - -Select.addEventListener('change', () => { - setLoadingLink(true) - setHidingImage(true) - setError(false) - - if (Select.value === '') { - setDisabledLink(true) - return - } - - setDisabledLink(false) - setLoadingSelect(true) - - fetch(`https://api.frkn.org/peer?location=${Select.value}`) - .then((res) => res.json()) - .then((data) => setConfigs(data)) - .catch(() => { - setDisabledLink(true) - setError(true) - }) - .finally(() => { - setLoadingSelect(false) - }) -}) diff --git a/scripts/lang-app.js b/scripts/lang-app.js deleted file mode 100644 index 69f1e787..00000000 --- a/scripts/lang-app.js +++ /dev/null @@ -1,88 +0,0 @@ -'use strict'; -const langSwitch = document.querySelector('.lang-switch'); -const allLang = ['ru', 'en']; - -document.addEventListener('DOMContentLoaded', getLocalLang) -langSwitch.addEventListener('click', changeLanguage); - -function btnLanguageSwitcher() { - if (langSwitch.textContent === 'Русский') { - langSwitch.textContent = 'English'; - langSwitch.value = 'ru'; - - } else if (langSwitch.textContent === 'English'){ - langSwitch.textContent = 'Русский'; - langSwitch.value = 'en'; - } -} - -function changeLanguage() { - btnLanguageSwitcher() - let lang = langSwitch.value; - location.href = window.location.pathname + '#' + lang; - let hash = window.location.hash; - hash = hash.slice(1); - if (!allLang.includes(hash)) { - location.href = window.location.pathname + '#ru'; - } - saveLocalLang(hash); - for (let key in langArr) { - let elem = document.querySelector('.lng-'+ key); - if (elem) { - changeInstallLinkHref(elem, hash); - elem.textContent = langArr[key][hash]; - } - } -} - -function saveLocalLang(language) { - let langs; - if(localStorage.getItem('langs') === null) { - langs = []; - } else { - langs = JSON.parse(localStorage.getItem('langs')); - } - langs.push(language); - localStorage.setItem('langs', JSON.stringify(langs)); -} - -function getLocalLang() { - let langs; - if (localStorage.getItem('langs') === null) { - langs = []; - location.href = window.location.pathname + '#ru'; - langSwitch.textContent = 'English'; - langSwitch.value = 'ru'; - } else { - langs = JSON.parse(localStorage.getItem('langs')); - let hash = langs[langs.length - 1]; - if (hash === 'ru'){ - langSwitch.textContent = 'English'; - langSwitch.value = hash; - location.href = window.location.pathname + '#' + hash; - } else if (hash === 'en') { - langSwitch.textContent = 'Русский'; - langSwitch.value = hash; - location.href = window.location.pathname + '#' + hash; - } - } - langs.forEach(function (language) { - let hash = langs[langs.length - 1]; - for (let key in langArr) { - let elem = document.querySelector('.lng-'+ key); - if (elem) { - changeInstallLinkHref(elem, hash); - elem.textContent = langArr[key][hash]; - } - } - }); -} - -function changeInstallLinkHref(elem, hash) { - if (elem.classList.contains('lng-link-install')) { - hash === "ru" - ? (elem.href = 'instructions-ru.html') - : (elem.href = 'instructions-en.html'); - } - return; -} \ No newline at end of file diff --git a/scripts/lang.js b/scripts/lang.js deleted file mode 100644 index ebe51e1b..00000000 --- a/scripts/lang.js +++ /dev/null @@ -1,50 +0,0 @@ -const langArr = { - 'header-slogan': { - 'ru' : 'Flighty Raptor Kicks Network', - 'en' : 'Flighty Raptor Kicks Network', - }, - 'welcome' : { - 'ru' : 'Свободный VPN для свободных людей.', - 'en' : 'Free VPN for free humans', - }, - 'welcome-text1' : { - 'ru' : 'Мы за свободу слова и против какой-либо цензуры.', - 'en' : 'We are for freedom of speech and against any kind of censorship.', - }, - 'welcome-text2' : { - 'ru' : 'Делаем некоммерческий', - 'en' : 'We are making a non-commercial', - }, - 'welcome-text3' : { - 'ru' : ', не собирающий никаких данных.', - 'en' : 'that does not collect any data.', - }, - 'welcome-text4' : { - 'ru' : 'Сегодня свобода слова особенно уязвима, независимые СМИ запрещены, людям промывают мозги пропагандой, сервисы ВПН блокируют, выражать свою позицию и мнение опасно. Поэтому мы взялись за этот проект, он некоммерческий, и здесь не преследуется никакой выгоды. Мы за свободу слова и против какой-либо цензуры. Компания у нас небольшая, но у нас большой потенциал. Вы можете поддержать нас донатами или любым другим вкладом по улучшению сервиса. Даже заведение ишью в проекте сильно нам поможет.', - 'en' : 'Today, freedom of speech is especially vulnerable. Independent media are banned, people are brainwashed with propaganda, VPN services are blocked, and it is dangerous to express one\'s position and opinion. This is the reason why we took on this project. It is non-commercial, no profit is pursued either. We are rather small, but yet, we have a great potential. You can support us with donations or any other contribution to improve the service. Pulling requests and creating issues also helps us a lot.', - }, - 'link-install' : { - 'ru' : 'Установить IPSec/IKeV2', - 'en' : 'Install IPSec/IKeV2', - }, - 'link-install2' : { - 'ru' : 'Установить WIREGUARD', - 'en' : 'Install WIREGUARD', - }, - 'donation' : { - 'ru' : 'Мы open source проект. Вы можете нас поддержать.', - 'en' : 'We are OpenSource. You can support us.', - }, - 'donation2' : { - 'ru' : 'Поддержать проект', - 'en' : 'Donate' - }, - 'contacts' : { - 'ru' : 'Обратная связь - ', - 'en' : 'Contacts - ', - }, - 'back-to-main-page' : { - 'ru' : 'Обратно на главную', - 'en' : 'Back to main page' - } -}