Jump to content


  • Content Count

  • Joined

  • Last visited

About arrestedgames

  • Rank

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. that is weird. please note this: "*** DO NOT USE ROOT ... not even on your dev box. Crap has a way of leaking out to the public..." so - do not install this into root's homedir do not run this as root create a new user to run atavism under become that user then follow those instructions.
  2. shoot me an email - rick at arrestedgames.com - i think we are both trying to do the same thing, and between us, we may be able to achieve our respective goals.
  3. this was specifically aimed at Bobby Bautista; I seem to find a way to send a private message
  4. @bbautista - any interest in collaborating on a project? -- rick at arrestedgames.com
  5. UPDATE NOTE: This is antiquated; the setup steps in the official documentation work well. You might still get some use from hacking this setup, and can probably use some of this in an Ansible playbook, but I defer to the 201n.x setup guide. Again; not a plugin - but this will let you take a bare ubuntu 16.04 box and automagically configure it for running atavism. The assumption is that you have either a VM or a standalone linux box you use for devel, and you want to blow it away and rebuild at will. This script may be able to be hacked to use for production deployments, or to use with another linux flavor. YMMV. Pre-req: * Knowledge of Linux. Please. This is so unsupported, but it so freaking useful to me, I thought I would share. * Fresh Ubuntu 16.04LTS server (not desktop.. may work, don't know) * Install Oracle Java 8 - add-apt-repository ppa:webupd8team/java && apt-get update && apt-get install oracle-java8-installer * Install MySQL - apt-get install mysql-server Use: unrar atavism server into some directory. copy this script into the atavism_server directory (i call it setup.sh) edit the setup.sh file and change the following vars appropriately: MY_IP=`ifconfig | head -2 | grep inet\ addr | awk -F: '{ print $2 }' | awk '{ print $1 }'` #MY_IP= MY_NETWORK=192.168.1 You can either use the uncommented MY_IP which will find your first network address, or comment that, and uncomment the second one - which you will want to edit to your linux box's IP. MY_NETWORK is the first 3 octet of your MY_IP (ie: is MY_IP, then MY_NETWORK would be 192.168.1) chmod 0755 ./setup.sh sudo ./setup.sh USERNAME PASSWORD where USERNAME = the db username you want to use and PASSWORD = the password for that user *** DO NOT USE ROOT ... not even on your dev box. Crap has a way of leaking out to the public... Follow the prompts. Then, you should be able to cd into atavism_server/bin and launch auth.sh and world.sh #!/bin/bash if [ "$#" -lt 2 ]; then echo "Usage: $0 DB_USERNAME DB_PASSWORD" exit fi echo "Setting up Atavism development server..." echo "Setting Variables..." DTU_FILES="auth.sh auth.properties world.sh world.properties" FIX_BASH="auth.sh world.sh" SET_WORLD_DB="atavism.db_password= atavism.admin.db_password= atavism.content.db_password= atavism.auth.db_password=" SET_WORLD_DB_USER="atavism.db_user= atavism.admin.db_user= atavism.content.db_user= atavism.auth.db_user=" MY_IP=`ifconfig | head -2 | grep inet\ addr | awk -F: '{ print $2 }' | awk '{ print $1 }'` #MY_IP= MY_NETWORK=10.1.24 DATABASES="admin master atavism world_content" export db_user=$1 export db_pass=$2 echo -n "Fixing EOL terminators: " for i in `echo $DTU_FILES` ; do dos2unix bin/$i ; done echo "[Done]" echo -n "Setting Permissions: " for i in `echo $FIX_BASH` ; do chmod +x bin/$i ; done echo "[Done]" echo -n "Fixing bin/bash: " for i in `echo $FIX_BASH` ; do sed -i '1 s/^.*$/\#\!\/bin\/bash/g' bin/$i ; done echo "[Done]" echo -n "Fixing prop2sh: " sed -i 's/:space:/[:space:]/g' bin/prop2sh.awk echo "[Done]" echo -n "Setting Auth DB Username: " sed -i "s/atavism.db_user=root/atavism.db_user=${db_user}/g" bin/auth.properties echo "[Done]" echo -n "Setting Auth DB Password: " sed -i "s/atavism.db_password=test/atavism.db_password=${db_pass}/g" bin/auth.properties echo "[Done]" echo -n "Setting World DB Passwords: " for i in `echo $SET_WORLD_DB` ; do sed -i "s/${i}test/${i}${db_pass}/g" bin/world.properties ; done echo "[Done]" echo -n "Setting World DB Usernames: " for i in `echo $SET_WORLD_DB_USER` ; do sed -i "s/${i}root/${i}${db_user}/g" bin/world.properties ; done echo "[Done]" echo -n "Changing bind IP Address to ${MY_IP}: " sed -i "s/atavism.login.bindaddress=localhost/atavism.login.bindaddress=${MY_IP}/g" bin/world.properties sed -i "s/atavism.proxy.bindaddress=localhost/atavism.proxy.bindaddress=${MY_IP}/g" bin/world.properties sed -i "s/atavism.db_hostname=localhost/atavism.db_hostname=${MY_IP}/g" bin/world.properties sed -i "s/atavism.db_hostname=localhost/atavism.db_hostname=${MY_IP}/g" bin/auth.properties echo "[Done]" echo "Setting up the database - using [root] password for MySQL:" mysql_config_editor set --login-path=local --host=localhost --user=root --password echo "Disabling strict sql mode..." mysql --login-path=local -e "set sql_mode = '';" echo "Editing mysql.cnf..." echo "[mysql]" > /etc/mysql/conf.d/mysql.cnf echo "[mysqld]" >> /etc/mysql/conf.d/mysql.cnf echo "sql_mode=\"\"" >> /etc/mysql/conf.d/mysql.cnf echo "Editing /etc/mysql/mysql.conf.d/mysqld.cnf..." sed -i "s/${MY_IP}/g" /etc/mysql/mysql.conf.d/mysqld.cnf echo "Restarting MySQL..." service mysql restart echo "Dropping Old Databases..." mysql --login-path=local -e "drop database admin; drop database atavism; drop database master; drop database world_content;" echo "Dropping db users..." mysql --login-path=local -e "drop user ${db_user}@'localhost'; drop user ${db_user}@'${MY_NETWORK}.%';" for slurpdb in `ls -1 sql/*.sql` ; do echo "Importing ${slurpdb} ... " ; mysql --login-path=local < ${slurpdb} ; done mysql --login-path=local -e "CREATE USER ${db_user}@localhost IDENTIFIED BY '${db_pass}';" mysql --login-path=local -e "CREATE USER ${db_user}@'${MY_NETWORK}.%' IDENTIFIED BY '${db_pass}';" for i in `echo $DATABASES` do echo "Creating user: ${db_user} in DB: ${i} ..." mysql --login-path=local -e "GRANT ALL PRIVILEGES ON ${i}.* TO ${db_user}@localhost identified by '${db_pass}';" mysql --login-path=local -e "GRANT ALL PRIVILEGES ON ${i}.* TO ${db_user}@'${MY_NETWORK}.%' identified by '${db_pass}';" mysql --login-path=local -e "FLUSH PRIVILEGES;" done unset db_pass unset db_user echo "Database setup complete."
  6. so - there was more to this thread... or am i totally insane?
  7. I think there are a few folks who can contrib to this list.. when I was searching, I wanted something cheap, fast, and dedicated. S3 will ultimately fit that bill for production hosting, however, I don't want to spend a ton of cash during the dev phases. Your own box. Not a shared system or VPS. (except in the case of AWS or Azure - thats ok) Unlimited bandwidth - truly. Enough disk for client files Able to bounce at will Must not be in Bob's Garage ------ Canada: https://www.soyoustart.com/us/essential-servers/ ^^ Not only did this fit the bill, but holy cow were they awesome nice on the phone. I wanted to clarify the EULA to make sure I could use #/Mbps sustained and not deal with capping or shaping.
  8. Rotation: If you want help on the quest bit, let me know - I'd love to have a distraction from the guild stuff..
  9. This is assuming Linux, I have no clue if this is valid on a windows machine... Probably going to rewrite this in python; so that it is more live/realtime - but for testing purposes I use this for showing the status of the test box: #!/bin/bash world_status="UP" auth_status="UP" system_status="UP" auth_color="green" system_color="green" world_color="green" function get_world() { for worldlist in `./world.sh -v -C status | awk '{ print $(NF-1)}'` do if [ "$worldlist" = "NOT" ]; then world_status="DOWN" world_color="red" fi done } function get_auth() { for authlist in `./auth.sh -v -C status | awk '{ print $(NF-1)}'` do if [ "$authlist" != "NOT" ]; then auth_status="DOWN" auth_color="red" fi done } function get_total() { for totallist in $auth_status $world_status do if [ "$totallist" != "UP" ]; then system_status="DOWN" system_color="red" fi done } get_world get_auth get_total current_date=`date +%D` current_time=`date +%T` function print_html() { cat < /path_to_web_root_healthcheck/index.html DATE: $current_date TIME: $current_time WORLD: $world_status AUTH: $auth_status OVERALL: $system_status EOF } function print_text() { cat < /path_to_web_root_healthcheck/index.txt DATE: $current_date TIME: $current_time WORLD: $world_status AUTH: $auth_status OVERALL: $system_status EOF } print_html print_text added this to the atavism user crontab: crontab -e then add: */15 * * * * /Path_To_Server/atavism_server/bin/check_status.sh it runs every 15 minutes, and spits out a pair of files that can be curled/wget/included whatever. probably not the best thing to run in a production env, but for testing it gives you a quick look at the health of all the services.
  10. So - I am curious; what are the top 5 things folks want to know/have? I'll start. HOWTO - Creating a whole new race in UMA; something non-human based, like a Centaur Player CODE - Guilds. - I am working on this, but its def. something I want. CODE - Ghostrunning - from graveyard to corpse. HOWTO - Morph - like a dual-race (Werewolf or werechicken) CODE - a better System Options menu / more granular control (Gamma, volume, resolution, etc) - the Unity one is so obvious, and not very much control.. maybe this is not code - maybe its actually a HOWTO? Maybe is we can find a crossection of interests, we can get this stuff together ourselves and contribute back.
  11. yeah - i turn it off when i log in. the three times i tried using it; it was kind of useless - if its not open, the person get no notification. why not just use slack and have channels for real comms?
  12. I would like to see: - regions - weather - day/night - guilds
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.