All Projects → lutris → website

lutris / website

Licence: AGPL-3.0 license
Lutris.net website

Programming Languages

python
139335 projects - #7 most used programming language
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
SCSS
7915 projects
Vue
7211 projects
CSS
56736 projects

Labels

Projects that are alternatives of or similar to website

oversmash
Overwatch API library for player details and career stats
Stars: ✭ 42 (-56.25%)
Mutual labels:  gaming
raiderio-addon
RaiderIO AddOn
Stars: ✭ 35 (-63.54%)
Mutual labels:  gaming
MC-Eternal-1.12
Tons of thrilling™ Adventures, Magic, Science, Quests, Combat, Bosses, Automation, Exploration, and Rats who shoot cheese from cannons??
Stars: ✭ 28 (-70.83%)
Mutual labels:  gaming
core
Core library for the CustomRealms runtime
Stars: ✭ 26 (-72.92%)
Mutual labels:  gaming
ASUS-TUF-Z390M-Pro-Gaming-Hackintosh
ASUS TUF Z390M-Pro Gaming (Wifi) Hackintosh [BIOS, Drivers, Kexts, Config.plist]
Stars: ✭ 25 (-73.96%)
Mutual labels:  gaming
convex
Convex Main Repository - Decentralised platform for the Internet of Value
Stars: ✭ 56 (-41.67%)
Mutual labels:  gaming
awesome-game-essays
Thoughtful and noteworthy links to awesome videogame "essay" kind of content .🎮
Stars: ✭ 25 (-73.96%)
Mutual labels:  gaming
Post-Tweaks
A post-installation batch script for Windows
Stars: ✭ 136 (+41.67%)
Mutual labels:  gaming
piw5 bot warfare
The Bot Warfare mod for PlutoniumIW5
Stars: ✭ 57 (-40.62%)
Mutual labels:  gaming
leagueoflegends
A command-line interface for League of Legends Esports.
Stars: ✭ 28 (-70.83%)
Mutual labels:  gaming
oUF Lumen
World of Warcraft Addon : oUF Layout
Stars: ✭ 12 (-87.5%)
Mutual labels:  gaming
GamerClubWeb
🎮 A gaming news frontend, base on vuetify
Stars: ✭ 17 (-82.29%)
Mutual labels:  gaming
Nerf-Gun-Call-of-Duty-Warzone-Controller
DIY Call of Duty Warzone controller built using a nerf gun powered by the Raspberry Pi 4.
Stars: ✭ 18 (-81.25%)
Mutual labels:  gaming
bet
This repository holds the implementation code of Pangea Poker white paper: https://bit.ly/3bdCz0Z
Stars: ✭ 15 (-84.37%)
Mutual labels:  gaming
cloudgamestream
A Powershell one-click solution to enable NVIDIA GeForce Experience GameStream on a cloud machine with a GRID supporting GPU.
Stars: ✭ 99 (+3.13%)
Mutual labels:  gaming
lambda-moo-programming
Lambda MOO Programming collects and updates numerous MOO guides in one place and includes an updated and expanded version of the MOO Programmer's Manual in markdown and HTML5. It also includes the ToastStunt Programmers Guide and links to ToastStunt references.
Stars: ✭ 40 (-58.33%)
Mutual labels:  gaming
bzion
A League Management System designed for BZFlag leagues and tournaments.
Stars: ✭ 20 (-79.17%)
Mutual labels:  gaming
Conty
Easy to use unprivileged Linux container packed into a single portable executable
Stars: ✭ 198 (+106.25%)
Mutual labels:  gaming
cloud-game-servers-examples
Collection of examples for using Google Cloud Game Servers.
Stars: ✭ 28 (-70.83%)
Mutual labels:  gaming
Resources
We are the educational powerhouse for all things Aim, FPS, and Esports.
Stars: ✭ 43 (-55.21%)
Mutual labels:  gaming

Getting the site up and running for development

Install required packages:

apt install python3.8-venv

If you haven't done it already, install and configure virtualenvwrapper. If you are unfamiliar with virtualenvwrapper, see their documentation on their website: https://virtualenvwrapper.readthedocs.org/en/latest/

mkvirtualenv lutrisweb
cd lutrisweb
setvirtualenvproject

Once the virtualenv is created, you need to make sure that some environment variables are exported and are set to valid values, the simplest way to achieve that is to edit the postactivate script in $VIRTUAL_ENV/lutrisweb/bin/postactivate and add your exports here. The only required environment varible is the DJANGO_SETTINGS_MODULE one:

export DJANGO_SETTINGS_MODULE="lutrisweb.settings.local"

Alternatively, if you want to store additional secrets like API keys, you can place them in an environment file. You can then export values contained in this file by adding to the postactivate script:

export $(cat $HOME/Projects/website/.env.local | xargs)

Once your virtualenv is created, you can install the system and python dependencies:

# Ubuntu / Debian dependencies
sudo apt-get install build-essential git curl python3 python3-pip \
    python3-dev imagemagick libxml2-dev libxslt1-dev libssl-dev \
    libffi-dev libpq-dev libxml2-dev libjpeg-dev

# Red Hat / Fedora dependencies
sudo dnf install libpq-devel python3-devel

# Python dependencies
pip3 install -r config/requirements/devel.pip --exists-action=w

To build the frontend assets (javascript and css files), you'll need Node and NPM available. If your distribution offers a version of Node that is too old, you can use NVM (https://github.com/creationix/nvm) to install a more recent version.

You can then build the frontend assets:

npm install
npm run setup
npm run build

To watch for file changes and recompile assets on the fly, you can run in a separate terminal:

npm run watch

The installer issues use another frontend stack based on VueJS. It is not required to build them to work on other areas of the site. To build those assets, run:

cd frontend/vue
npm install
npm run build:issues  # for a production build
npm run build:issues-dev  # for a development build and watch file changes

Once your PostgreSQL database is configured (explained in the paragraph below), run the database migrations to populate the database with tables:

./manage.py migrate

You can create a new admin user with the command:

./manage.py createsuperuser

Alternatively, if you want a database that is already populated with games, there are snapshots on the Github releases page: https://github.com/lutris/website/releases

The installer scripting documentation is not shipped with the website but with the client, if you want to build the docs, you'll need to get the client and compile the rst files into HTML. All this process is automated:

make client
make docs

Once everything is set up correctly, you should be able to run the test suite without any failures:

make test

Run the development server with:

make run

Redis configuration

The lutris websites uses Redis as a cache. Install with:

docker run -d \
    --name lutriscache \
    --restart unless-stopped \
    -p 6379:6379 \
    redis:latest

Postgresql configuration

You can get the same Postgres server used in the Docker setup by running the following command:

docker run -d \
    --name lutrisdb \
    --restart unless-stopped \
    --shm-size 4gb \
    -e POSTGRES_PASSWORD=admin \
    -e POSGRES_DB=lutris \
    -e POSTGRES_USER=lutris \
    -p 5432:5432 \
    -v lutrisdb_backups:/backups \
    postgres:12

Quickstart:

sudo -u postgres psql
create user lutris;
create database lutris with owner lutris;
alter user lutris createdb;
alter database lutris owner to lutris;
alter user lutris with password 'admin';

Create a user:

sudo -u postgres create user lutris

Note that the user will need to be able to create databases in order to run tests. If you have created an user without this permission, run:

sudo -u postgres psql
ALTER USER lutris CREATEDB;

Creating a database:

sudo -u postgres psql
create database lutris with owner lutris;

or (in shell):

createdb lutris -O lutris

Modify database's owner:

sudo -u postgres psql
alter database lutris owner to lutris;

Change user's password:

sudo -u postgres psql
alter user lutris with password 'admin';

Dropping all tables from the database:

drop schema public cascade;
create schema public;

Backing up the database:

pg_dump lutris > lutris.sql

Restoring a backup:

psql lutris < lutris.sql

To automate backups, make sure the Unix user has superuser privileges on PostgreSQL and run this script with cron:

cd /srv/backup/sql
backup_file="lutris-$(date +%Y-%m-%d-%H-%M).tar"
pg_dump --format=tar lutris > $backup_file
gzip $backup_file

Vue based code

Installer issues are using Vue based project stored in frontend/vue.

If you wish to develop for it, first install the dependencies and make a dev build:

cd frontend/vue
npm install
npm run build:issues-dev

The last command will run forever, watching for changes made to the source and rebuilding the project on each update. Press Ctrl+C to interrupt it.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].