Giter VIP home page Giter VIP logo

wilda's Introduction

Wilda

Репроксирование с модификацией страниц.

Зависимости

nginx redis ssdb php81-fpm php81-redis php81-cli php81-ctype php81-dom php81-bcmath php81-session

Конфигурация

Вся конфигурация для сайтов описывается в файле .config.json Файл global.json не изменяется.

Файлы конфигурации

app/config/global.json - Глобальная конфигурация

app/config/hosts.json - Конфигурация сайтов

app/config/access.json - Список пользователей для редактирования конфигурации hosts.json

Глобальные настройки наследуются с пользовательскими. Если в пользовательских настройках не будет задан какой-либо параметр, он будет наследован из глобальной конфигурации.

	"enabled": false

Параметр используется для вкл/выкл различного функционала.

storage (global, hosts)

  "storage": {
    "type": "disk",
    "redis": {
      "host": "127.0.0.1",
      "port": 6379
    },
    "ssdb": {
      "host": "127.0.0.1",
      "port": 8888
    }
  }

type - disk, memory

Опция устанавливает где хранить статичные элементы сайтов в cache

Тип disk хранение в ssdb

Тип memory хранение в redis

Если весь кэш не помещается в память, рекомендуется установить тип disk

hosts (global)

	"hosts": []

Описание конфигурации для каждого сайта отдельно

Если некоторые параметры не заданы в настройках сайта, они наследуются из глобальной конфигурации

forceSSL (global)

	"forceSSL": true

Принудительная установка HTTPS урлов.

styles (global, hosts)

	"styles": "relative"

relative - относительный путь css

absolute - абсолютный путь css

scripts (global, hosts)

	"scripts": "relative"

relative - относительный путь js

absolute - абсолютный путь js

images (global, hosts)

	"images": "relative"

relative - относительный путь img

absolute - абсолютный путь img

fonts (global, hosts)

	"fonts": "relative"

relative - относительный путь font

absolute - абсолютный путь font

icons (global, hosts)

	"icons": "relative"

relative - относительный путь icons

absolute - абсолютный путь icons

salt (global)

	"salt": "wzvvHBWVYQLnX5jFqDmGWPf6om1Hsx8g"

Используется для relative шифрует ссылки

lang (global)

	"lang": "ru"

Локализация для внутренних и внешних сообщений приложения

type (hosts)

	"type": "Plain"

Тип конструктора

Plain - пустой модуль

editor (global)

 "editor": {
  "enabled": true
 }

Редактирование файла конфигурации hosts.json

Используется совместно с access.json Доступ к редактированию hosts.json осуществляется посредством добавления параметра ?editor в урл устроку сайта https://sitename.tld/?editor

site (hosts)

	"site": "https://site.tld",
	"site": [
		"https://site.tld",
		"https://anothersite.tld"
	]

Имя сайта с протоколом (внешнее)

project (hosts)

	"project": "https://project.tld"

Имя сайта с протоколом (внутреннее)

cache (global, hosts)

	"cache": {
		"enabled": false,
		"expire": 1,
		"stats": true
	}

Все элементы сайта можно закешировать, чтобы ускорить процесс рендера страницы. Кеширование элементов: html, css, js, font, ico.

expire - Время жизни в минутах.

stats - Отображать в разметке комментарий с временем загрузки страницы.

Методы очистки кеша

https://sitename.tld/?cleaner - получение браузерного идентификатора для очистки кеша. После получения идентификатора браузером, происходит перенаправление на главную страницу сайта. Сверху слева появится иконка перезагрузки ⟳ при нажатии, произойдёт очистка кеша и перезагрузка страницы.

compress (global, hosts)

 "compress": {
 "enabled": true
 }

Включение HTML компрессии

privoxy (global, hosts)

	"privoxy": {
		"enabled": false,
		"host": "127.0.0.1",
		"port": 8118

	}

Запросы к внутреннему сайту через прокси

host - имя хоста

port - порт хоста

metrics (global, hosts)

	"metrics": {
		"enabled": true,
		"ga": "GTM-123123",
		"ya": "93467514"
	}

Счётчики Google Analytics & Yandex Metrika

ga - идентификатор Google Analytics

ya - идентификатор Yandex Metrika

mail (global, hosts)

	"mail": {
		"enabled": true,
		"subject": "New submission",
		"from":"[email protected]",
		"success": "Сообщение успешно отправлено!",
		"error": "Ошибка!",
		"to": [
			"[email protected]",
			"[email protected]"
		]
	}

Отправка почтовых сообщений

subject - Заголовок сообщения

from - Ящик отправителя

to - Ящики для приёма

success - Сообщение об успешной отправке

error - Сообщение об ошибке

favicon (global, hosts)

	"favicon": {
		"enabled": true
	}

Замена favicon на сайте Необходимо добавить файл favicon в директорию app/favicon. Имя файла должно совпадать с именем основного домена sitename.tld.ico

inject (hosts)

	"inject": {
		"enabled": true,
		"header": true,
		"footer": true
	}

Необходимо добавить файлы в директорию app/inject.

header - Инъекция блока html с произвольным кодом в шапку разметки </head>

Имя файла должно совпадать с именем основного домена sitename.tld-header.html

footer - Инъекция блока html с произвольным кодом в шапку разметки вниз </body>

Имя файла должно совпадать с именем основного домена sitename.tld-footer.html

Пример описания конфигурации для определённого сайта

"hosts": [
		{
			"compress": {
				"enabled": true
			},
			"type": "Plain",
			"site": [
				"https://sitename.tld",
				"https://anothersitename.tld"
			],
			"project": "https://project123-constructor.tld",
			"privoxy": {
				"enabled": false
			},
			"mail": {
				"enabled": true,
				"subject": "Заявка с сайта",
				"from":"[email protected]",
				"to": [
					"[email protected]",
					"[email protected]"
				]
			},
			"favicon": {
				"enabled": true
			},
			"metrics": {
				"enabled": true,
				"ga": "GTM-123123",
				"ya": "123456789"
			},
			"inject": {
				"enabled": true,
				"header": true
			}
		}
]

wilda's People

Contributors

pp-- avatar pavelpronskiy avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.