/itemszop

Sklep twojego serwera minecraftowego za darmo!

Primary LanguageVueMIT LicenseMIT

itemszop

Discord Deploy with Vercel Deploy with Netlify Deploy with heroku

ItemSzop to sklep twojego serwera minecraftowego za darmo! Działa dzięki złożeniu serverless'owych funkcji z hostowaniem statycznych plików. Nie wymaga żadnej instalacji - model SaaS. Serwis jest zrobiony we frameworku Nuxt.js. Uwierzytelnianie użytkowników i zapisywanie konfiguracji sklepów odbywa się za pośrednictwem bazy danych Firebase. Dodatkowo użyty jest framework Vuetify do ładnych stylów strony.

Spis treści

Wersja produkcyjna

Wersja produkcyjna znajduje się pod adresem: https://itemszop.tk.

Nie jest wymagane hostowanie własnego sklepu - model Software as a Service. Na tej stronie może się każdy zarejestrować i założyć swój sklep. Wówczas sklep dostanie adres https://itemszop.tk/shop/id_sklepu. Jest również możliwość przekierowania własnej domeny, lecz wtedy trzeba poprosić na forum discordowym.

Plugin do serwera minecraftowego

Adres do repozytorium z pluginem: https://github.com/michaljaz/itemszop-plugin

Aby itemszop działał prawidłowo niezbędne jest zainstalowanie pluginu na serwerze minecraftowym. Gdy serwer jest offline komendy odkładają się na stos i wywołają się gdy będzie online.

Wspierani operatorzy płatności

Własne hostowanie

Ważne: Pamiętaj, że nie potrzebujesz stawiać własnego sklepu. Możesz po prostu skorzystać z modelu SaaS.

Tutorial instalacji itemszopu na cloudflare

1. Konfiguracja bazy firebase

  • Włącz logowanie emailem i hasłem
    • Kliknij Build > Authentication > Sign-in method > Native providers > Email/Password
    • Następnie kliknij Enable przy polu Email/Password i kliknij Save
  • Dodaj firebase to aplikacji webowej
    • Kliknij Project Overview, następnie Ikonkę ze znakiem </>
    • Otrzymasz wtedy kod node.js, z którego zapisz sobie tą część:
{
	apiKey: "XXXXXXXXX",
	authDomain: "XXXXXXXXX",
	databaseURL: "XXXXXXXXX",
	projectId: "XXXXXXXXX",
	storageBucket: "XXXXXXXXX",
	messagingSenderId: "XXXXXXXXX",
	appId: "XXXXXXXXX"
}
  • Utwórz konto serwisowe w bazie
    • Kliknij ikonkę koła zębatego > Project Settings > Service accounts > Create service account > Generate new private key
    • Zapisz plik serviceAccountKey.json na swoim komputerze
    • Zawartość pliku będzie wyglądać tak:
{
	"type": "XXXXXXXXX",
	"project_id": "XXXXXXXXX",
	"private_key_id": "XXXXXXXXX",
	"private_key": "XXXXXXXXX",
	"auth_uri": "XXXXXXXXX",
	"token_uri": "XXXXXXXXX",
	"auth_provider_x509_cert_url": "XXXXXXXXX",
	"client_x509_cert_url": "XXXXXXXXX",
	"client_email": "XXXXXXXXX"
}

2. Przygotowanie sklepu

Wskazówka: Cloudflare jest najlepsze do hostowania itemszopu.

Użycie serwisów takich jak Cloudflare, Vercel, Netlify, Heroku lub Glitch

  • Zrób forka głównego repozytorium.

  • Połącz swoje repozytorium z panelem na danym serwisie.

  • Podczas konfiguracji, zapisz wartość punktu 2 w zmiennej środowiskowej (Environment variable) projektu FIREBASE_CONFIG.

  • Gotowe!

Hostowanie na własnym vps'ie lub innej maszynie.

  • Sklonuj repozytorium

  • Zapisz zmienną środowiskową FIREBASE_CONFIG w pliku .env w roocie projektu.

  • Wpisz kolejno komendy npm install, npm run build

  • Aby włączyć serwer wywołaj komendę npm start (najlepiej w tle używając np. screen)

  • Gotowe!

Dodatkowe informacje

  • Nowo powstały projekt działa tak samo jak strona główna Itemszopu, ale już łączy się do Twojej własnej bazy i ma swoich własnych użytkowników.

  • Jeśli chcesz, żeby twój sklep był tylko hostowany w 'roocie' projektu, to wystarczy dodać zmienną środowiskową SINGLE_SHOP o wartości id sklepu.

  • Istnieje również możliwość zablokowania możliwości tworzenia sklepów wszystkim użytkownikom, oprócz jednego. Wówczas trzeba zapisać zmienną środowiskową OWNER_ID o wartości id użytkownika (wziętym z bazy firebase).

Limity na darmowych hostingach

statyczna strona + serverlessowe funkcje

Limit wysyłanych requestów Cloudflare Vercel Netlify
Serverlessowe funkcje 100k / dzień 100k / dzień 125k / miesiąc
Statyczna strona bez limitu bez limitu bez limitu

serwer node.js

Heroku Glitch
Maksymalny czas działania 550h / miesiąc 1000h / miesiąc

Dla deweloperów

# Instalowanie bibliotek
$ npm install

############ KONFIGURACJA DEWELOPERA ############
# używając nuxta
$ npm run dev

# używając netlify
$ netlify dev

############ KONFIGURACJA PRODUKCYJNA ############
# Budowanie aplikacji
$ npm run build

# Hostowanie na porcie 8080
$ npm start

Aby uzyskać szczegółowe wyjaśnienie, jak to działa, sprawdź dokumentację.

Forum discordowe

Pod tym linkiem: https://discord.com/invite/Nx28v3yAER znajduje się serwer discordowy, na którym można zadawać pytania, składać propozycje lub zgłaszać problemy techniczne.