Add Docker Compose stack for L2 Essence 542 with PostgreSQL 17 and install scripts.
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
-- Расширения для init-скриптов (опционально).
|
||||
CREATE EXTENSION IF NOT EXISTS pgcrypto;
|
||||
@@ -0,0 +1,49 @@
|
||||
-- Минимальные таблицы под логин-сервер в стиле L2J (accounts / gameservers / account_data).
|
||||
-- Подходит для многих форков; у Samurai Crow/Essence могут отличаться имена колонок или хеш пароля —
|
||||
-- тогда сверьте с SQL из вашей сборки и поправьте этот файл.
|
||||
--
|
||||
-- Тестовый логин: admin / admin
|
||||
-- Хеш: Base64(SHA1 от UTF-8 строки «admin») — типично для L2J/Mobius.
|
||||
-- Альтернатива (если сборка ждёт hex SHA1): замените поле password на
|
||||
-- d033e22ae348aeb5660fc2140aec35850c4da997
|
||||
|
||||
CREATE TABLE IF NOT EXISTS accounts (
|
||||
login VARCHAR(45) NOT NULL PRIMARY KEY,
|
||||
password VARCHAR(128),
|
||||
lastactive BIGINT,
|
||||
accesslevel INTEGER NOT NULL DEFAULT 0,
|
||||
lastip VARCHAR(45),
|
||||
lastserver SMALLINT DEFAULT 1
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS account_data (
|
||||
account_name VARCHAR(45) NOT NULL,
|
||||
var VARCHAR(50) NOT NULL,
|
||||
value VARCHAR(255),
|
||||
PRIMARY KEY (account_name, var),
|
||||
CONSTRAINT fk_account_data_account FOREIGN KEY (account_name)
|
||||
REFERENCES accounts (login) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS gameservers (
|
||||
hexid VARCHAR(255) NOT NULL,
|
||||
server_id INTEGER NOT NULL PRIMARY KEY,
|
||||
host VARCHAR(255) NOT NULL
|
||||
);
|
||||
|
||||
INSERT INTO accounts (login, password, lastactive, accesslevel, lastip, lastserver)
|
||||
VALUES (
|
||||
'admin',
|
||||
'0DPiKuNIrrVmD8IUCuw1hQxNqZc=',
|
||||
(EXTRACT(EPOCH FROM NOW()) * 1000)::bigint,
|
||||
0,
|
||||
'127.0.0.1',
|
||||
1
|
||||
)
|
||||
ON CONFLICT (login) DO NOTHING;
|
||||
|
||||
-- Игровой сервер при первом подключении к логину часто сам делает INSERT в gameservers.
|
||||
-- Если нужна явная запись (hexid должен совпасть с RequestServerID / hex в конфиге GS):
|
||||
-- INSERT INTO gameservers (hexid, server_id, host)
|
||||
-- VALUES ('ВАШ_32_СИМВОЛА_HEX', 1, '127.0.0.1')
|
||||
-- ON CONFLICT (server_id) DO UPDATE SET hexid = EXCLUDED.hexid, host = EXCLUDED.host;
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
# Выдаёт владельца таблиц логина роли из POSTGRES_USER (см. docker-compose).
|
||||
set -eu
|
||||
psql -v ON_ERROR_STOP=1 --username "postgres" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
ALTER TABLE IF EXISTS accounts OWNER TO "${POSTGRES_USER}";
|
||||
ALTER TABLE IF EXISTS account_data OWNER TO "${POSTGRES_USER}";
|
||||
ALTER TABLE IF EXISTS gameservers OWNER TO "${POSTGRES_USER}";
|
||||
EOSQL
|
||||
Reference in New Issue
Block a user