Giter Club home page Giter Club logo

chalet-le-jar's Introduction

chalet-le-jar's People

Contributors

chalet-le-jar avatar chiefmikey avatar deepsourcebot avatar dependabot[bot] avatar github-actions[bot] avatar imgbotapp avatar

Watchers

 avatar

chalet-le-jar's Issues

[Feature]: Add bedrock server activity log

Currently the screen process output for the bedrock server is not being logged and is lost on each reset.

Ideally the screen process output would be fed to a txt file to server as an activity log.

This log could be used to monitor user activity, most importantly user connects and disconnects.

This log would eventually become huge, if txt file sizes are an issue then deleting entries after a specified amount of lines in the txt file could be necessary.

Another option is to create a fresh txt file on each bedrock server start, labeled with the date and time of start, archiving previous activity txt logs.

Then entire txt files from old bedrock server runs could be conditionally removed.

[Feature]: Add teleport input

Add input for teleporting

User dropdown based on allowlist/permissions with custom option for entity input
Input X Y Z

Enter teleport command into screen with variables for input data

[Feature]: Add player allowlist entry

Currently the player allowlist must be updated manually.

Ideally users with granted front end permissions could add/edit/remove other players info on the allowlist.

This would require a simple front end page pulling data from the whitelist file on the server and listing it with editing capabilities that modifies the file data.

It might be better to limit user capabilities to prevent unintentional edits, possibly limited to just the main server admin, or players on the allowlist with operator privileges.

After adding user have dropdown option to change permissions
Updates permissions file for user
Use default permissions added to file when user is created on allowlist

[Feature]: Add bedrock server timeout after period of inactivity

Currently the bedrock server is always running unless manually stopped.

It would be more ideal if the server was able to stop (timeout) after a period of no player activity.

This is dependent on the server starting again when a user attempts to join the inactive bedrock server.

Player output could be captured from the screen process, possibly fed to a txt document, which would be monitored for specific activity.

This solution would also provide a full events log, but may become too lengthy?

If commands are read from a large txt file it would need to only process the most recent line and not the entire file.

Commands might also be able to be read directly from the screen output, one line at a time, but this would not create a command log.

Connected users would need to be tracked when connecting to the server, possibly fed into a txt file, then deleted from the txt file when they disconnect from the bedrock server.

If the txt file remains empty with no connected players for a specified period of time (30 min?) the bedrock server should stop.

[Feature]: Active user warning

Add active user check to scripts with screen kill.

Warn before executing if there is an active player.

Active players could be tracked in a .log file. Scripts would check for content in this file and run an input y/n to verify running the script.

[Feature]: Add teleport presets

Add saveable preset values for teleporting

Have customizable name

Writes to file on server or to log on github

Could be custom per user - user branch on repo
Or could be universal - easier to share coordinates with others
Or both - branch for user and branch for shared - option to make private or public

[Bug]: Improve ssh session security

Currently a password is used for ssh access.

This should be replaced with a more secure method such as an auth certificate.

Just need to make sure ssh access is still achievable from other remote machines such as ipad app etc.

[Bug]: Change user from root

Currently the root user is being used to execute scripts

chalet-le-jar user is used on ssh

Permissions should be set for chalet-le-jar user to execute scripts without the need for sudo

When remotely triggering scripts from front end, it defaults to executing as root.

su command may need to be used to execute as chalet-le-jar user.

[Feature]: Bashrc scrub script

Either track bashrc itself or add alt bashrc and add script to scrub actual rc.

echo $(cat .altbashrc) > /home/chalet-le-jar/.bashrc

[Feature]: Automate github pem regen and aws secrets manager rotation

The github pem for chalet should be rotated and updated in aws secrets manager regularly

Currently the pem is only pulled in the server-start.sh script

If rotated a command may be needed to re-pull the pem on the server so that git commands dont fail after it is rotated.

It may need to be cached somehow or pulled on every script command.

Not ideal for the autosave script but if its not updated after rotation the autosave will fail to update the log branch.

All other scripts will fail to reset main.

[Bug]: Trim log limit

Logs are getting huge.

Trim log files to a certain amount of lines.

Trim branches, there's a lot now.

[Feature]: Server cron job

Need a configurable maintenance cron to run in off hours.

Stop server, runs start server which will check apt updates and eventually check bedrock updates.

[Feature]: Add bedrock server active user log

Currently there is no log of currently active players in the bedrock server.

Ideally as the bedrock server screen process output is captured, logic would be used to monitor actively connected users.

If the log is empty and the screen output reads that a user has connected, that username would be logged in a separate txt file to monitor their connection status.

If the same user disconnects, the logic should remove that username from the txt log to reflect their disconnected status.

This should work for multiple users connecting or disconnecting concurrently.

If all usernames have been removed and the log is empty, then the inactive period timeout should begin counting down.

This log does not need to persist usernames since the full screen process output log will be kept.

[Feature]: Add bash alias config

Implement alias config and source it into bashrc.

# chalet-alias.sh
alias start=${HOME}/scripts/server-start.sh
alias stop=${HOME}/scripts/server-stop.sh
# etc.
# .bashrc
source ${HOME}/chalet-alias.sh

[Feature]: Add server script for rewind

CLI script to run rewind.

Put behind bash alias.

Interactive selection from directory to file name to set variable for rewind input

OR

Interactive input to select between autosave/save, echo file names, interactive input to set variable to run with rewind

[Feature]: Create brew cask

Minecraft server needs a brew cask to be made.

In server upgrade process, check for new versions, compare to cask, submit bump pr if outdated but then upgrade the server with the new cask draft so the new version is installed immediately and don't have to wait for pr to be merged.

[Feature]: Implement auto version update from bedrock link

Currently a manual version upgrade is required to install new versions of bedrock server.

A solution is needed to automatically scrape the bedrock server download link and check for version changes, then automatically implement the upgrade when no players are active.

This may depend on the ability to stop running the bedrock server after a certain period of inactivity.

[Bug]: Update remote front end to connect to local server

Currently the front end is configured to send scripts to aws.

This should be updated to communicate with the local server.

Currently cognito and iam roles are used to authenticate requests.

A replacement for cognito access may be necessary, though the front end whitelist should still be implemented somehow.

[Feature]: Add bedrock server state log

Currently there is no implementation to track bedrock server activity status.

Ideally a txt log would be kept which has one line detailing if the bedrock server is currently running or not.

This log would be used to determine the condition of the server-start.sh script being run on each attempt to connect made by a player.

On running the full server-start.sh script, the log should be updated to reflect the running status.

On the server-stop.sh script, the log should be updated to reflect the stopped status.

[Feature]: Add bedrock server auto start

Currently if the bedrock server has been stopped it must be manually started to enable players to connect.

A solution should be implemented to automatically run the server-start.sh script when a user attempts to connect to an inactive bedrock server.

Ideally the script would run while the game client is attempting to connect, with the client continuing to attempt a connection while starting and not boot the player requiring multiple join attempts.

Ideally this would result in the game client just appearing to take longer to connect to the server during the start process.

This may require all connections to utilize the dns, and not directly connect to the local server.

The dns would need to process the request and server state before redirecting to the local server.

This might not make sense since the local server would still need to process a reaction to the result of the dns request/state processing.

If connecting directly to the local server, some intermediate processing would be required on the same port.

Or a separate port may need to be accessed (via apache etc.) which runs state processing and then forwards to the bedrock server port.

On any connection, regardless of server state, a conditionally wrapped server-start.sh script could be executed, only running the start process if the logged server state is inactive.

This would still need some kind of interception before attempting to connect directly to the bedrock server port, as well as a timeout or retry period to account for the startup process delay.

[Feature]: Reboot server job

Nightly check, if no players are connected stop server and run system update script, then reboot server.

Make sure boot launch services are implemented for getting the server started again after reboot. Maybe webhook a notification if there's an error with boot launch.

[Feature]: Coordinates toggle

Add toggle to front end that turns coordinates on or off.

Persistent, stores state in log and reads condition at server start.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.