GitXplorerGitXplorer
A

stream_timer

public
6 stars
2 forks
10 issues

Commits

List of commits on branch main.
Unverified
d5901a9bd48ef03629492c85960d51c4b9558489

Update all pnpm dependencies (2024-11-11)

ddepfu[bot] committed 2 months ago
Unverified
1216188f0cebeaea5fc2a55f29d47eaa165a2f31

Rename ESLint config file to `.mjs` and drop `module` type from `package.json`

AAlexWayfer committed 2 months ago
Unverified
9893898bc2a866fe18454a108cce22b8735be81b

Rename PostCSS config file to `.cjs`

AAlexWayfer committed 2 months ago
Unverified
0b3fb03625214f9e0b509be995cfa17c45ab8a46

Resolve error with SASS `map`

AAlexWayfer committed 2 months ago
Unverified
b7468aeb1f84c88df78740ea0ddddcc743290a47

Resolve ESLint warnings, add `module` type to the project

AAlexWayfer committed 2 months ago
Unverified
5cd93e189709aaeca5bea4c7bb16815cbf9741a6

Resolve new ESLint offenses

AAlexWayfer committed 2 months ago

README

The README file for this repository.

Stream Timer

Tech stack


Deployment

  1. Install PostgreSQL.
  2. Install rbenv.
  3. Install nodenv.
  4. Set the EDITOR environment variable (nano, vim, mcedit, etc.).
  5. Clone this repository and checkout to directory.
  6. Run exe/setup.sh to install Ruby (with gems), Node.js (with modules) and fill configs.
  7. Run toys db create_user to create database user.
  8. Run toys db create to create database.
  9. Run toys db migrate to run database migrations.

Production (optional)

  • Tune PostgreSQL (via pgtune, for example).
  • Set correct timezone.
  • Install traceroute (or traceroute6) for debug information in network errors reports.
  • Add UNIX-user for project: adduser stream_timer.
  • Install and configure nginx (with symbolic links from config/nginx).
  • Make symbolic link of project directory to /var/www/stream_timer (Debian), /usr/share/nginx/stream_timer (Fedora) or something else, and change the root in nginx config. to something like /home/stream_timer/stream_timer.
  • Install Certbot and generate certificates.
    • Optional openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096.
  • Copy config/systemd.service to the ~/.config/systemd/user/ directory and enable it.
    • Don't forget to enable user services after logout: loginctl enable-linger stream_timer.

Tools

Server management

For management server state use toys server command.

Ruby console

Realized with pry:

toys console

(All models and other classes are available)

PostgreSQL console

toys psql

(For login as postgres user use sudo su - postgres)


Database migrations

Create migration

toys db migrations new migration_name

List migrations

toys db migrations
# toys db migrations list

Run migrations

To latest:

toys db migrate
# toys db migrations run

To specific version (forward or backward):

toys db migrate --target=part_of_target_migration_name_or_version

Rollback migrations

N is a number of migrations to rollback relatively to the latest existing.

toys db migrations rollback N

Update server

Locally

exe/update.sh

It will update default (or specified as first argument) branch, update bundle, stop server, run migrations and start server.

Remotely

toys deploy

It will run exe/update.sh command remotely through ssh connection from deploy.yaml configuration file.


Update external resources

  1. Go to IcoMoon App
  2. Upload project
    1. Click Manage Projects button
    2. Click Import Project button
    3. Upload assets/icomoon/selection.json file
    4. Click Load button
  3. Modify the set of icons
    1. Enter keyword (like car or man) into search field
    2. Select desired icons
  4. Update icons
    1. Click Generate SVG & More button
    2. Check names and other settings
    3. Click Download button
    4. Run toys icomoon extract %path_to_downloaded_archive%
  5. Repeat these steps with the final assets/icomoon/selection.json file, because of there is a difference (in setIdx and iconIdx fields) between original selection.json file with freshly added icons and generated selection.json file with the same icons.