GitXplorerGitXplorer
A

stream_timer

public
6 stars
2 forks
10 issues

Commits

List of commits on branch main.
Unverified
1f10e0321a198d4416833a62dbc55cbd22be132f

Update Node.js to version 23.6.0

ddepfu[bot] committed 10 days ago
Unverified
18b069e0c4b29c4f9599c3e3d2b5cc3e7732d3ff

Update Ruby to version 3.4.1

ddepfu[bot] committed 23 days ago
Unverified
1a612272a640a29596ded4311e0dc8c8c32b2def

Update Node.js to version 23.5.0

ddepfu[bot] committed a month ago
Unverified
893d547df86583df997907e538ef8b9f0a3fe347

Update Node.js to version 23.4.0

ddepfu[bot] committed a month ago
Unverified
0af5735eea9691a534820efe080b8b02d894d97e

Update Node.js to version 23.3.0

ddepfu[bot] committed 2 months ago
Unverified
3d489a1ad9a6f5decaffb32b38f43b3e23753b8c

Update Node.js to version 23.2.0

ddepfu[bot] 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.