├── simview └── readme.md ├── stracker └── readme.md ├── kissmyrank └── readme.md ├── mysql └── readme.md ├── realpenalty └── readme.md ├── assetto └── readme.md ├── servermanager └── readme.md ├── conf_simview ├── Dockerfile ├── config1.toml ├── config2.toml ├── config3.toml ├── config4.toml └── config5.toml ├── conf_servermanager ├── servers.yml └── config.yml ├── Dockerfile ├── readme.md └── docker-compose.yml /simview/readme.md: -------------------------------------------------------------------------------- 1 | simview folder -------------------------------------------------------------------------------- /stracker/readme.md: -------------------------------------------------------------------------------- 1 | stracker folder -------------------------------------------------------------------------------- /kissmyrank/readme.md: -------------------------------------------------------------------------------- 1 | kissmyrank folder -------------------------------------------------------------------------------- /mysql/readme.md: -------------------------------------------------------------------------------- 1 | mysql simview db folder -------------------------------------------------------------------------------- /realpenalty/readme.md: -------------------------------------------------------------------------------- 1 | realpenalty folder -------------------------------------------------------------------------------- /assetto/readme.md: -------------------------------------------------------------------------------- 1 | Assetto corsa server folder -------------------------------------------------------------------------------- /servermanager/readme.md: -------------------------------------------------------------------------------- 1 | server manager folder -------------------------------------------------------------------------------- /conf_simview/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:latest 2 | 3 | WORKDIR /home/assetto/server-manager/servers/SERVER_00/assetto/simview 4 | 5 | ENTRYPOINT ["./bin/SimViewHttp"] -------------------------------------------------------------------------------- /conf_servermanager/servers.yml: -------------------------------------------------------------------------------- 1 | # servers.yml - multiserver configuration for server manager 2 | 3 | # change this number to the number of servers you would like to be set up for you. 4 | servers: 5 -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:20.04 2 | 3 | ENV SERVER_MANAGER_DIR /home/assetto/server-manager 4 | ENV SERVER_INSTALL_DIR ${SERVER_MANAGER_DIR}/assetto 5 | 6 | ENV LANG C.UTF-8 7 | RUN apt-get update && apt-get install -y build-essential libssl-dev curl lib32gcc1 lib32stdc++6 zlib1g zlib1g lib32z1 ca-certificates && rm -rf /var/lib/apt/lists/* 8 | 9 | RUN mkdir -p ${SERVER_MANAGER_DIR} && mkdir ${SERVER_INSTALL_DIR} 10 | 11 | ADD servermanager/server-manager ${SERVER_MANAGER_DIR}/server-manager 12 | ADD servermanager/assetto-multiserver-manager ${SERVER_MANAGER_DIR}/assetto-multiserver-manager 13 | 14 | RUN chmod +x ${SERVER_MANAGER_DIR}/server-manager ${SERVER_MANAGER_DIR}/assetto-multiserver-manager 15 | 16 | WORKDIR ${SERVER_MANAGER_DIR} 17 | 18 | ENTRYPOINT ["./server-manager"] 19 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | Assetto corsa multi-server manager with stracker, realpenalty, kissmyrank and simview plugins with docker and docker compose. 2 | 3 | This setup allow you to run on docker a preconfig server manager with 5 server on a single host 4 | 5 | # How to use 6 | Download this project 7 | 8 | Edit all yml and toml file by changing each password/key line with a stronger password (e.g. mysql password default is 'simviewpw', change this in docker-compose.yml and all toml files) 9 | 10 | copy the ac_kissmyrank_linux folder from https://www.racedepartment.com/downloads/kissmyrank-local-assetto-corsa-server-plugin.17667/ to kissmyrank folder 11 | 12 | copy the extracted folder from https://www.racedepartment.com/downloads/real-penalty-tool.29591/ to realpenalty folder 13 | 14 | copy the extracted folder from https://www.racedepartment.com/downloads/stracker.3510/ to stracker folder and extract twice the stracker_linux_x86.tgz file (on linux `tar xfvz stracker_linux_x86.tgz`) 15 | 16 | copy the SimView-v1.2.1-Linux-x64.zip folder from https://www.racedepartment.com/downloads/simview.35249/ to simview folder 17 | 18 | copy the acsm_v2.1.6_linux-amd64.zip folder from https://emperorservers.com/control-panel to servermanager folder 19 | 20 | copy the ACSM.License file from https://emperorservers.com/control-panel to conf_servermanager folder 21 | 22 | remove the readme.md file from mysql folder 23 | 24 | open prompt, go to project folder and run 25 | ``` 26 | docker compose up -d 27 | ``` 28 | 29 | After this, wait some minutes and go to localhost:8772 and localhost:10100 (change localhost with your ip or domain if you are using a remote server) 30 | 31 | On server manager change plugins and server port with this config (it's not mandatory to use this specific port, but you may change .toml file in conf_simview folder) 32 | https://docs.google.com/spreadsheets/d/1RBrfKjMcnvTGKRZwZM2Q_K0to7L6OLk7eCRYsQPyuxU/edit#gid=0 33 | 34 | Remember that simview works with tracks files that are not uploaded by server manager, 35 | e.g. if you want to use simview with a race on Imola you need to upload on assetto\content\tracks\imola all .kn5 files from your local track folder, or if you have pregenerated simview files by another server, copy them in the simview folder (simview's generated files are under live-track-maps and tracks folders) 36 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | assetto-multiserver: 5 | build: . 6 | restart: always 7 | stop_signal: SIGINT 8 | ports: 9 | # server manager web interface port 10 | - 0.0.0.0:8772:8772 11 | # be sure to add ports for each assetto corsa server instance here 12 | - 0.0.0.0:9600-9604:9600-9604 13 | - 0.0.0.0:9600-9604:9600-9604/udp 14 | - 0.0.0.0:8081-8085:8081-8085 15 | # stracker 16 | - 0.0.0.0:9642-9646:9642-9646 17 | - 0.0.0.0:9642-9646:9642-9646/udp 18 | - 0.0.0.0:50041-50045:50041-50045 19 | # real penalty 20 | - 0.0.0.0:8108-8112:8108-8112 21 | - 0.0.0.0:8108-8112:8108-8112/udp 22 | # kissmyrank 23 | - 0.0.0.0:7789-7793:7789-7793 24 | - 0.0.0.0:13000-13004:13000-13004 25 | # simview web interface port 26 | - 10100:10100 27 | # port used by simview for websocket 28 | - 12500-12505:12500-12505 29 | 30 | # set the entrypoint to either './server-manager' or './assetto-multiserver-manager' 31 | entrypoint: ./assetto-multiserver-manager 32 | volumes: 33 | - ./conf_servermanager/ACSM.License:/home/assetto/server-manager/ACSM.License 34 | - ./conf_servermanager/servers.yml:/home/assetto/server-manager/servers.yml 35 | - ./conf_servermanager/config.yml:/home/assetto/server-manager/config.yml 36 | # note that the 'assetto' folder needs to exist and have the assetto server installed 37 | - ./assetto:/home/assetto/server-manager/assetto 38 | # plugins 39 | - ./stracker:/home/assetto/server-manager/assetto/stracker 40 | - ./realpenalty:/home/assetto/server-manager/assetto/realpenalty 41 | - ./kissmyrank:/home/assetto/server-manager/assetto/kissmyrank 42 | # note that the 'servers' folder needs to exist, e.g. `mkdir servers` before running docker-compose up 43 | - ./servermanager/servers:/home/assetto/server-manager/servers 44 | # note that the 'shared_store.json' folder needs to exist, e.g. `mkdir shared_store.json` before running docker-compose up 45 | - ./servermanager/shared_store.json:/home/assetto/server-manager/shared_store.json 46 | # simview writers 1 47 | - ./simview:/home/assetto/server-manager/servers/SERVER_00/assetto/simview 48 | - ./simview/bin/SimViewWriter:/home/assetto/server-manager/servers/SERVER_00/assetto/simview/SimViewWriter 49 | - ./conf_simview/config1.toml:/home/assetto/server-manager/servers/SERVER_00/assetto/simview/config/config.toml 50 | # simview writers 2 51 | - ./simview:/home/assetto/server-manager/servers/SERVER_01/assetto/simview 52 | - ./simview/bin/SimViewWriter:/home/assetto/server-manager/servers/SERVER_01/assetto/simview/SimViewWriter 53 | - ./conf_simview/config2.toml:/home/assetto/server-manager/servers/SERVER_01/assetto/simview/config/config.toml 54 | # simview writers 3 55 | - ./simview:/home/assetto/server-manager/servers/SERVER_02/assetto/simview 56 | - ./simview/bin/SimViewWriter:/home/assetto/server-manager/servers/SERVER_02/assetto/simview/SimViewWriter 57 | - ./conf_simview/config3.toml:/home/assetto/server-manager/servers/SERVER_02/assetto/simview/config/config.toml 58 | # simview writers 4 59 | - ./simview:/home/assetto/server-manager/servers/SERVER_03/assetto/simview 60 | - ./simview/bin/SimViewWriter:/home/assetto/server-manager/servers/SERVER_03/assetto/simview/SimViewWriter 61 | - ./conf_simview/config4.toml:/home/assetto/server-manager/servers/SERVER_03/assetto/simview/config/config.toml 62 | # simview writers 5 63 | - ./simview:/home/assetto/server-manager/servers/SERVER_04/assetto/simview 64 | - ./simview/bin/SimViewWriter:/home/assetto/server-manager/servers/SERVER_04/assetto/simview/SimViewWriter 65 | - ./conf_simview/config5.toml:/home/assetto/server-manager/servers/SERVER_04/assetto/simview/config/config.toml 66 | networks: 67 | vpcbr: 68 | ipv4_address: 10.5.0.7 69 | mysql: 70 | image: mysql:latest 71 | volumes: 72 | - "./mysql:/var/lib/mysql" 73 | - "./simview/data:/docker-entrypoint-initdb.d" 74 | restart: always 75 | ports: 76 | - 3306:3306 77 | environment: 78 | MYSQL_ROOT_PASSWORD: rootpw 79 | MYSQL_DATABASE: simview 80 | MYSQL_USER: simview 81 | MYSQL_PASSWORD: simviewpw 82 | MYSQL_ROOT_HOST: '%' 83 | networks: 84 | vpcbr: 85 | ipv4_address: 10.5.0.5 86 | simview_http: 87 | build: ./conf_simview 88 | restart: always 89 | volumes: 90 | - ./simview:/home/assetto/server-manager/servers/SERVER_00/assetto/simview 91 | - ./conf_simview/config1.toml:/home/assetto/server-manager/servers/SERVER_00/assetto/simview/config/config.toml 92 | - ./assetto:/home/assetto/server-manager/assetto 93 | - ./servermanager/servers:/home/assetto/server-manager/servers 94 | network_mode: "service:assetto-multiserver" 95 | depends_on: 96 | - assetto-multiserver 97 | 98 | networks: 99 | vpcbr: 100 | driver: bridge 101 | ipam: 102 | config: 103 | - subnet: 10.5.0.0/16 -------------------------------------------------------------------------------- /conf_simview/config1.toml: -------------------------------------------------------------------------------- 1 | # Note: Please go through this before modifying any configs 2 | # 3 | # Whenever new update comes with change in config.detail.toml (it will be marked in changelog), 4 | # replace your old config.toml with new one 5 | # 6 | # Configs marked with value like <> are required to be change else servers will not start, 7 | # rest you can leave as it is if it meets your requirements 8 | # 9 | # Value type: 10 | # Ex. 'abc' (Prefer single quote (') instead of double quote (") unless your value has single quote in itself. 11 | # Single quote will allow backward slash (\) in Windows paths) 12 | # Ex. 123 13 | # Ex. true or false only 14 | 15 | 16 | ###################################################### 17 | # Config for Game 18 | ###################################################### 19 | [game] 20 | # Location of Assetto Corsa server directory, used to get car and track info. 21 | # For car and track info make sure ui folders of respective cars and tracks are also present. 22 | # This should be absolute path to root folder of AC server without the trailing slash 23 | # Ex: 'C:/Steam/steamapps/common/assettocorsa/server' or 24 | # Ex: 'C:\Steam\steamapps\common\assettocorsa\server' on Windows (Both forward and backward slash will work on Windows) 25 | # Ex: '/home/ubuntu/server' on Linux (Use forward slash for Linux) 26 | path = '/home/assetto/server-manager/servers/SERVER_00/assetto' 27 | 28 | 29 | ###################################################### 30 | # Config for HTTP App 31 | ###################################################### 32 | [app] 33 | # App HTTP server configs 34 | [app.server] 35 | # IP address to bind HTTP port 36 | # Default: '0.0.0.0' 37 | host = '0.0.0.0' 38 | 39 | # Port of HTTP server 40 | # Default: 10100 41 | port = 10100 42 | 43 | # IP address or hostname or domain name where the HTTP server is running 44 | # This will be used to show live event link in Welcome message in AC chat 45 | # Default: '', in this case link won't be shown in the message 46 | public.host = '' 47 | 48 | # Absolute path (if not 'html') of public UI files without the trailing slash 49 | # Note: Only change if you are copying or moving html folder out of default location 50 | # Default: 'html' folder in current directory 51 | doc.root = 'html' 52 | 53 | # Absolute path to folder where to cache AC specific assets files ex. track preview and car badge. 54 | # This is required as once you remove/change content of AC server the cached files will be used when viewing old event pages 55 | # It is recommended to have this directory outside simview folder so you can update simview without overwriting it. 56 | cache.path = '/home/assetto/server-manager/servers/SERVER_00/assetto/simview' 57 | 58 | # Number of thread to process HTTP requests 59 | # 0 indicates that number of threads will be automatically set by HTTP process based on available CPUs 60 | # Any non-zero value will set threads to that specific value 61 | # Default: 0 62 | threads = 0 63 | 64 | [app.live] 65 | # When enabled user chat will be saved in DB and shown in Session Feed 66 | # When disabled chats are not stored in DB. 67 | # Default: false 68 | session.feed.show.chat = false 69 | 70 | 71 | ###################################################### 72 | # Config for Writer 73 | ###################################################### 74 | [writer] 75 | # Config for HTTP server in Writer process to server Leaderboard websocket API 76 | # Every writer will have a HTTP server for Leaderboard API with dedicated one port and thread 77 | [writer.http] 78 | 79 | # Port used by HTTP server to listen for Websocket connection. 80 | # This port will have to be opened to public in your machine (VM) so that viewer 81 | # can connect to leaderboard 82 | # Default: 0, when it is 0 the local port of Writer process (ac.server.udp.local.port) 83 | # will be used for leaderboard HTTP server as well 84 | port = 0 85 | 86 | # Periodic broadcast interval for Live Leaderboard API in milliseconds 87 | # This is the interval in which viewer will receive update to live leaderboard 88 | # once they are connected to websocket 89 | # Default: 2000 (= 2s) 90 | leaderboard.broadcast.interval.ms = 2000 91 | 92 | 93 | ###################################################### 94 | # Logging file will be generated in 'log' directory 95 | # Used by both HTTP and Writer process 96 | ###################################################### 97 | [log] 98 | # Target 'console' or 'file' 99 | # Default: 'file' 100 | target = 'console' 101 | 102 | # Level 'trace', 'debug', 'info', 'warning', 'error', 'critical', 'off' 103 | # Default: 'info' 104 | level = 'info' 105 | 106 | 107 | ###################################################### 108 | # Assetto Corsa Server and event detail 109 | ###################################################### 110 | [ac.server] 111 | # IP address of the Assetto Corsa server 112 | # Default: '127.0.0.1' 113 | host = '127.0.0.1' 114 | 115 | # Update driver name when they connect with new name to the server 116 | # This could be set on per writer process if you are running multiple 117 | # Default: false 118 | update.driver.name = false 119 | 120 | # AC server UDP Plugin ports 121 | [ac.server.udp] 122 | # Port opened by Assetto Corsa server 123 | # In AC server's server_cfg.ini file, the value set for UDP_PLUGIN_LOCAL_PORT after 124 | # enabling UDP plugin for AC server. You only need to set it when you are using some 125 | # proxy app (like sTracker or ACRelay) else you can leave it to default (0) so that it 126 | # will automatically get picked from the server_cfg.ini file 127 | # Default: 0 (port will be picked from AC server config file) 128 | port = 11500 129 | 130 | # Port used by SimView to received packets from AC server 131 | # In AC server's server_cfg.ini file, the port set in UDP_PLUGIN_ADDRESS. 132 | # Ex. If UDP_PLUGIN_ADDRESS is 127.0.0.1:10002, set only 10002 value here. 133 | # You only need to set it when you are using some 134 | # proxy app (like sTracker or ACRelay) else you can leave it to default (0) so that it 135 | # will automatically get picked from the server_cfg.ini file 136 | local.port = 12500 137 | 138 | # With Assetto Corsa Server Manager (ACSM) v2+, the AC server log format has been changed. 139 | # To get correct leaderboard with Sector times and Tyre info make this config true when using AC servers 140 | # from ACSM v2+. When enabled SimView will use Enhanced UDP interface of ACSM to get sector times and current tyre 141 | # Note: Tyre info is only available from ACSM v2.1.4 142 | # Default: false 143 | use.acsm.udp = true 144 | 145 | # The interval in milliseconds to receive realtime update from AC server 146 | # Accuracy can be improved with lower value for this but the default is good enough 147 | # Note: This config should be always less then writer.leaderboard.broadcast.interval.ms 148 | # Default: 200 (5Hz) 149 | realtime.update.interval.ms = 200 150 | 151 | [ac.server.event] 152 | # Event name, all sessions with this name will be grouped together 153 | # Default: Use the server name as event name, those will also be grouped 154 | name = '' 155 | 156 | # When enabled SimView will store telemetry in DB for each eligible lap done on the server. 157 | # ac.server.udp.realtime.update.interval.ms directly 158 | # influence the accuracy of sampled telemetry and also the telemtry data size for a lap. 159 | # If disabling this feature you can also consider to increase ac.server.udp.realtime.update.interval.ms 160 | # Default: true 161 | lap.telemetry.enable = true 162 | 163 | [ac.server.event.team] 164 | # If this event is team based event modify this to true. When teams is enable it will parse and 165 | # create teams based on entry_list.ini file. The GUIDs should be ';' separated and 166 | # make sure LOCKED_ENTRY_LIST=1 and PICKUP_MODE_ENABLED=1 is set in server_cfg.ini file 167 | # Note: All config below this will only be effective if this is true. 168 | # Default: false 169 | enable = false 170 | 171 | # If you are providing team names in entry_list.ini file in format 'no.|Team Name' like 172 | # '32|Awesome Team' then 32 will be used as team number in leaderboard and 'Awesome Team' as team name 173 | # Default: false 174 | use.number = false 175 | 176 | # If you want to enable car livery preview in team's UI page for this event set this to true. 177 | # Make sure livery file are present in the server. More specifically it uses preview.png (or preview.jpg) 178 | # file of the skin to show in UI. This is mostly liked be used when using 179 | # custom liveries though it will work for stock liveries also 180 | livery.preview.enable = false 181 | 182 | 183 | ###################################################### 184 | # MySQL database details to store session data 185 | ###################################################### 186 | [database] 187 | # MySQL server host name 188 | # Only change it when you are running MySQL server on different machine 189 | # In that case use that's server IP/hostname here 190 | # Default: '127.0.0.1' 191 | host = '10.5.0.5' 192 | 193 | # MySQL server port 194 | # Only used when MySQL server is not running on same machine 195 | # i.e above host config is not localhost 196 | # Default: 0 197 | port = 0 198 | 199 | # MySQL user name to connect to database 200 | # Default: 'simview' 201 | user = 'simview' 202 | 203 | # MySQL database name which will be used by SimView 204 | # Default: 'simview' 205 | schema = 'simview' 206 | 207 | # Password to access MySQL Database 208 | password = 'simviewpw' 209 | 210 | 211 | ###################################################### 212 | # Overrides 213 | ###################################################### 214 | [overrides] 215 | # Override default car class. The updated value will be saved in DB 216 | # when the first time the car is used once the config is added here 217 | # Name used here should be the folder name of that car in AC directory 218 | # e.x To override class for Mazda MX5 to 'Cup' add 219 | # ks_mazda_mx5_cup = 'Cup' 220 | [overrides.car.class] 221 | # ks_mazda_mx5_cup = 'Cup' 222 | 223 | # Override user/driver country. Get the country codes from https://www.countryflags.io/ website. 224 | # Use the captial letter ones like 'AD', 'IT' etc. 225 | # When the first time driver connect after adding here his country will be updated to DB 226 | # Left hand side should be steam id of the driver 227 | # e.x To override country for driver with steam id 76561198252222222 to Italy (code: IT) add 228 | # 76561198252222222 = 'IT' 229 | [overrides.user.country] 230 | # 76561198252222222 = 'IT' -------------------------------------------------------------------------------- /conf_simview/config2.toml: -------------------------------------------------------------------------------- 1 | # Note: Please go through this before modifying any configs 2 | # 3 | # Whenever new update comes with change in config.detail.toml (it will be marked in changelog), 4 | # replace your old config.toml with new one 5 | # 6 | # Configs marked with value like <> are required to be change else servers will not start, 7 | # rest you can leave as it is if it meets your requirements 8 | # 9 | # Value type: 10 | # Ex. 'abc' (Prefer single quote (') instead of double quote (") unless your value has single quote in itself. 11 | # Single quote will allow backward slash (\) in Windows paths) 12 | # Ex. 123 13 | # Ex. true or false only 14 | 15 | 16 | ###################################################### 17 | # Config for Game 18 | ###################################################### 19 | [game] 20 | # Location of Assetto Corsa server directory, used to get car and track info. 21 | # For car and track info make sure ui folders of respective cars and tracks are also present. 22 | # This should be absolute path to root folder of AC server without the trailing slash 23 | # Ex: 'C:/Steam/steamapps/common/assettocorsa/server' or 24 | # Ex: 'C:\Steam\steamapps\common\assettocorsa\server' on Windows (Both forward and backward slash will work on Windows) 25 | # Ex: '/home/ubuntu/server' on Linux (Use forward slash for Linux) 26 | path = '/home/assetto/server-manager/servers/SERVER_01/assetto' 27 | 28 | 29 | ###################################################### 30 | # Config for HTTP App 31 | ###################################################### 32 | [app] 33 | # App HTTP server configs 34 | [app.server] 35 | # IP address to bind HTTP port 36 | # Default: '0.0.0.0' 37 | host = '0.0.0.0' 38 | 39 | # Port of HTTP server 40 | # Default: 10100 41 | port = 10100 42 | 43 | # IP address or hostname or domain name where the HTTP server is running 44 | # This will be used to show live event link in Welcome message in AC chat 45 | # Default: '', in this case link won't be shown in the message 46 | public.host = '' 47 | 48 | # Absolute path (if not 'html') of public UI files without the trailing slash 49 | # Note: Only change if you are copying or moving html folder out of default location 50 | # Default: 'html' folder in current directory 51 | doc.root = 'html' 52 | 53 | # Absolute path to folder where to cache AC specific assets files ex. track preview and car badge. 54 | # This is required as once you remove/change content of AC server the cached files will be used when viewing old event pages 55 | # It is recommended to have this directory outside simview folder so you can update simview without overwriting it. 56 | cache.path = '/home/assetto/server-manager/servers/SERVER_01/assetto/simview' 57 | 58 | # Number of thread to process HTTP requests 59 | # 0 indicates that number of threads will be automatically set by HTTP process based on available CPUs 60 | # Any non-zero value will set threads to that specific value 61 | # Default: 0 62 | threads = 0 63 | 64 | [app.live] 65 | # When enabled user chat will be saved in DB and shown in Session Feed 66 | # When disabled chats are not stored in DB. 67 | # Default: false 68 | session.feed.show.chat = false 69 | 70 | 71 | ###################################################### 72 | # Config for Writer 73 | ###################################################### 74 | [writer] 75 | # Config for HTTP server in Writer process to server Leaderboard websocket API 76 | # Every writer will have a HTTP server for Leaderboard API with dedicated one port and thread 77 | [writer.http] 78 | 79 | # Port used by HTTP server to listen for Websocket connection. 80 | # This port will have to be opened to public in your machine (VM) so that viewer 81 | # can connect to leaderboard 82 | # Default: 0, when it is 0 the local port of Writer process (ac.server.udp.local.port) 83 | # will be used for leaderboard HTTP server as well 84 | port = 0 85 | 86 | # Periodic broadcast interval for Live Leaderboard API in milliseconds 87 | # This is the interval in which viewer will receive update to live leaderboard 88 | # once they are connected to websocket 89 | # Default: 2000 (= 2s) 90 | leaderboard.broadcast.interval.ms = 2000 91 | 92 | 93 | ###################################################### 94 | # Logging file will be generated in 'log' directory 95 | # Used by both HTTP and Writer process 96 | ###################################################### 97 | [log] 98 | # Target 'console' or 'file' 99 | # Default: 'file' 100 | target = 'console' 101 | 102 | # Level 'trace', 'debug', 'info', 'warning', 'error', 'critical', 'off' 103 | # Default: 'info' 104 | level = 'info' 105 | 106 | 107 | ###################################################### 108 | # Assetto Corsa Server and event detail 109 | ###################################################### 110 | [ac.server] 111 | # IP address of the Assetto Corsa server 112 | # Default: '127.0.0.1' 113 | host = '127.0.0.1' 114 | 115 | # Update driver name when they connect with new name to the server 116 | # This could be set on per writer process if you are running multiple 117 | # Default: false 118 | update.driver.name = false 119 | 120 | # AC server UDP Plugin ports 121 | [ac.server.udp] 122 | # Port opened by Assetto Corsa server 123 | # In AC server's server_cfg.ini file, the value set for UDP_PLUGIN_LOCAL_PORT after 124 | # enabling UDP plugin for AC server. You only need to set it when you are using some 125 | # proxy app (like sTracker or ACRelay) else you can leave it to default (0) so that it 126 | # will automatically get picked from the server_cfg.ini file 127 | # Default: 0 (port will be picked from AC server config file) 128 | port = 11501 129 | 130 | # Port used by SimView to received packets from AC server 131 | # In AC server's server_cfg.ini file, the port set in UDP_PLUGIN_ADDRESS. 132 | # Ex. If UDP_PLUGIN_ADDRESS is 127.0.0.1:10002, set only 10002 value here. 133 | # You only need to set it when you are using some 134 | # proxy app (like sTracker or ACRelay) else you can leave it to default (0) so that it 135 | # will automatically get picked from the server_cfg.ini file 136 | local.port = 12501 137 | 138 | # With Assetto Corsa Server Manager (ACSM) v2+, the AC server log format has been changed. 139 | # To get correct leaderboard with Sector times and Tyre info make this config true when using AC servers 140 | # from ACSM v2+. When enabled SimView will use Enhanced UDP interface of ACSM to get sector times and current tyre 141 | # Note: Tyre info is only available from ACSM v2.1.4 142 | # Default: false 143 | use.acsm.udp = true 144 | 145 | # The interval in milliseconds to receive realtime update from AC server 146 | # Accuracy can be improved with lower value for this but the default is good enough 147 | # Note: This config should be always less then writer.leaderboard.broadcast.interval.ms 148 | # Default: 200 (5Hz) 149 | realtime.update.interval.ms = 200 150 | 151 | [ac.server.event] 152 | # Event name, all sessions with this name will be grouped together 153 | # Default: Use the server name as event name, those will also be grouped 154 | name = '' 155 | 156 | # When enabled SimView will store telemetry in DB for each eligible lap done on the server. 157 | # ac.server.udp.realtime.update.interval.ms directly 158 | # influence the accuracy of sampled telemetry and also the telemtry data size for a lap. 159 | # If disabling this feature you can also consider to increase ac.server.udp.realtime.update.interval.ms 160 | # Default: true 161 | lap.telemetry.enable = true 162 | 163 | [ac.server.event.team] 164 | # If this event is team based event modify this to true. When teams is enable it will parse and 165 | # create teams based on entry_list.ini file. The GUIDs should be ';' separated and 166 | # make sure LOCKED_ENTRY_LIST=1 and PICKUP_MODE_ENABLED=1 is set in server_cfg.ini file 167 | # Note: All config below this will only be effective if this is true. 168 | # Default: false 169 | enable = false 170 | 171 | # If you are providing team names in entry_list.ini file in format 'no.|Team Name' like 172 | # '32|Awesome Team' then 32 will be used as team number in leaderboard and 'Awesome Team' as team name 173 | # Default: false 174 | use.number = false 175 | 176 | # If you want to enable car livery preview in team's UI page for this event set this to true. 177 | # Make sure livery file are present in the server. More specifically it uses preview.png (or preview.jpg) 178 | # file of the skin to show in UI. This is mostly liked be used when using 179 | # custom liveries though it will work for stock liveries also 180 | livery.preview.enable = false 181 | 182 | 183 | ###################################################### 184 | # MySQL database details to store session data 185 | ###################################################### 186 | [database] 187 | # MySQL server host name 188 | # Only change it when you are running MySQL server on different machine 189 | # In that case use that's server IP/hostname here 190 | # Default: '127.0.0.1' 191 | host = '10.5.0.5' 192 | 193 | # MySQL server port 194 | # Only used when MySQL server is not running on same machine 195 | # i.e above host config is not localhost 196 | # Default: 0 197 | port = 0 198 | 199 | # MySQL user name to connect to database 200 | # Default: 'simview' 201 | user = 'simview' 202 | 203 | # MySQL database name which will be used by SimView 204 | # Default: 'simview' 205 | schema = 'simview' 206 | 207 | # Password to access MySQL Database 208 | password = 'simviewpw' 209 | 210 | 211 | ###################################################### 212 | # Overrides 213 | ###################################################### 214 | [overrides] 215 | # Override default car class. The updated value will be saved in DB 216 | # when the first time the car is used once the config is added here 217 | # Name used here should be the folder name of that car in AC directory 218 | # e.x To override class for Mazda MX5 to 'Cup' add 219 | # ks_mazda_mx5_cup = 'Cup' 220 | [overrides.car.class] 221 | # ks_mazda_mx5_cup = 'Cup' 222 | 223 | # Override user/driver country. Get the country codes from https://www.countryflags.io/ website. 224 | # Use the captial letter ones like 'AD', 'IT' etc. 225 | # When the first time driver connect after adding here his country will be updated to DB 226 | # Left hand side should be steam id of the driver 227 | # e.x To override country for driver with steam id 76561198252222222 to Italy (code: IT) add 228 | # 76561198252222222 = 'IT' 229 | [overrides.user.country] 230 | # 76561198252222222 = 'IT' -------------------------------------------------------------------------------- /conf_simview/config3.toml: -------------------------------------------------------------------------------- 1 | # Note: Please go through this before modifying any configs 2 | # 3 | # Whenever new update comes with change in config.detail.toml (it will be marked in changelog), 4 | # replace your old config.toml with new one 5 | # 6 | # Configs marked with value like <> are required to be change else servers will not start, 7 | # rest you can leave as it is if it meets your requirements 8 | # 9 | # Value type: 10 | # Ex. 'abc' (Prefer single quote (') instead of double quote (") unless your value has single quote in itself. 11 | # Single quote will allow backward slash (\) in Windows paths) 12 | # Ex. 123 13 | # Ex. true or false only 14 | 15 | 16 | ###################################################### 17 | # Config for Game 18 | ###################################################### 19 | [game] 20 | # Location of Assetto Corsa server directory, used to get car and track info. 21 | # For car and track info make sure ui folders of respective cars and tracks are also present. 22 | # This should be absolute path to root folder of AC server without the trailing slash 23 | # Ex: 'C:/Steam/steamapps/common/assettocorsa/server' or 24 | # Ex: 'C:\Steam\steamapps\common\assettocorsa\server' on Windows (Both forward and backward slash will work on Windows) 25 | # Ex: '/home/ubuntu/server' on Linux (Use forward slash for Linux) 26 | path = '/home/assetto/server-manager/servers/SERVER_02/assetto' 27 | 28 | 29 | ###################################################### 30 | # Config for HTTP App 31 | ###################################################### 32 | [app] 33 | # App HTTP server configs 34 | [app.server] 35 | # IP address to bind HTTP port 36 | # Default: '0.0.0.0' 37 | host = '0.0.0.0' 38 | 39 | # Port of HTTP server 40 | # Default: 10100 41 | port = 10100 42 | 43 | # IP address or hostname or domain name where the HTTP server is running 44 | # This will be used to show live event link in Welcome message in AC chat 45 | # Default: '', in this case link won't be shown in the message 46 | public.host = '' 47 | 48 | # Absolute path (if not 'html') of public UI files without the trailing slash 49 | # Note: Only change if you are copying or moving html folder out of default location 50 | # Default: 'html' folder in current directory 51 | doc.root = 'html' 52 | 53 | # Absolute path to folder where to cache AC specific assets files ex. track preview and car badge. 54 | # This is required as once you remove/change content of AC server the cached files will be used when viewing old event pages 55 | # It is recommended to have this directory outside simview folder so you can update simview without overwriting it. 56 | cache.path = '/home/assetto/server-manager/servers/SERVER_02/assetto/simview' 57 | 58 | # Number of thread to process HTTP requests 59 | # 0 indicates that number of threads will be automatically set by HTTP process based on available CPUs 60 | # Any non-zero value will set threads to that specific value 61 | # Default: 0 62 | threads = 0 63 | 64 | [app.live] 65 | # When enabled user chat will be saved in DB and shown in Session Feed 66 | # When disabled chats are not stored in DB. 67 | # Default: false 68 | session.feed.show.chat = false 69 | 70 | 71 | ###################################################### 72 | # Config for Writer 73 | ###################################################### 74 | [writer] 75 | # Config for HTTP server in Writer process to server Leaderboard websocket API 76 | # Every writer will have a HTTP server for Leaderboard API with dedicated one port and thread 77 | [writer.http] 78 | 79 | # Port used by HTTP server to listen for Websocket connection. 80 | # This port will have to be opened to public in your machine (VM) so that viewer 81 | # can connect to leaderboard 82 | # Default: 0, when it is 0 the local port of Writer process (ac.server.udp.local.port) 83 | # will be used for leaderboard HTTP server as well 84 | port = 0 85 | 86 | # Periodic broadcast interval for Live Leaderboard API in milliseconds 87 | # This is the interval in which viewer will receive update to live leaderboard 88 | # once they are connected to websocket 89 | # Default: 2000 (= 2s) 90 | leaderboard.broadcast.interval.ms = 2000 91 | 92 | 93 | ###################################################### 94 | # Logging file will be generated in 'log' directory 95 | # Used by both HTTP and Writer process 96 | ###################################################### 97 | [log] 98 | # Target 'console' or 'file' 99 | # Default: 'file' 100 | target = 'console' 101 | 102 | # Level 'trace', 'debug', 'info', 'warning', 'error', 'critical', 'off' 103 | # Default: 'info' 104 | level = 'info' 105 | 106 | 107 | ###################################################### 108 | # Assetto Corsa Server and event detail 109 | ###################################################### 110 | [ac.server] 111 | # IP address of the Assetto Corsa server 112 | # Default: '127.0.0.1' 113 | host = '127.0.0.1' 114 | 115 | # Update driver name when they connect with new name to the server 116 | # This could be set on per writer process if you are running multiple 117 | # Default: false 118 | update.driver.name = false 119 | 120 | # AC server UDP Plugin ports 121 | [ac.server.udp] 122 | # Port opened by Assetto Corsa server 123 | # In AC server's server_cfg.ini file, the value set for UDP_PLUGIN_LOCAL_PORT after 124 | # enabling UDP plugin for AC server. You only need to set it when you are using some 125 | # proxy app (like sTracker or ACRelay) else you can leave it to default (0) so that it 126 | # will automatically get picked from the server_cfg.ini file 127 | # Default: 0 (port will be picked from AC server config file) 128 | port = 11502 129 | 130 | # Port used by SimView to received packets from AC server 131 | # In AC server's server_cfg.ini file, the port set in UDP_PLUGIN_ADDRESS. 132 | # Ex. If UDP_PLUGIN_ADDRESS is 127.0.0.1:10002, set only 10002 value here. 133 | # You only need to set it when you are using some 134 | # proxy app (like sTracker or ACRelay) else you can leave it to default (0) so that it 135 | # will automatically get picked from the server_cfg.ini file 136 | local.port = 12502 137 | 138 | # With Assetto Corsa Server Manager (ACSM) v2+, the AC server log format has been changed. 139 | # To get correct leaderboard with Sector times and Tyre info make this config true when using AC servers 140 | # from ACSM v2+. When enabled SimView will use Enhanced UDP interface of ACSM to get sector times and current tyre 141 | # Note: Tyre info is only available from ACSM v2.1.4 142 | # Default: false 143 | use.acsm.udp = true 144 | 145 | # The interval in milliseconds to receive realtime update from AC server 146 | # Accuracy can be improved with lower value for this but the default is good enough 147 | # Note: This config should be always less then writer.leaderboard.broadcast.interval.ms 148 | # Default: 200 (5Hz) 149 | realtime.update.interval.ms = 200 150 | 151 | [ac.server.event] 152 | # Event name, all sessions with this name will be grouped together 153 | # Default: Use the server name as event name, those will also be grouped 154 | name = '' 155 | 156 | # When enabled SimView will store telemetry in DB for each eligible lap done on the server. 157 | # ac.server.udp.realtime.update.interval.ms directly 158 | # influence the accuracy of sampled telemetry and also the telemtry data size for a lap. 159 | # If disabling this feature you can also consider to increase ac.server.udp.realtime.update.interval.ms 160 | # Default: true 161 | lap.telemetry.enable = true 162 | 163 | [ac.server.event.team] 164 | # If this event is team based event modify this to true. When teams is enable it will parse and 165 | # create teams based on entry_list.ini file. The GUIDs should be ';' separated and 166 | # make sure LOCKED_ENTRY_LIST=1 and PICKUP_MODE_ENABLED=1 is set in server_cfg.ini file 167 | # Note: All config below this will only be effective if this is true. 168 | # Default: false 169 | enable = false 170 | 171 | # If you are providing team names in entry_list.ini file in format 'no.|Team Name' like 172 | # '32|Awesome Team' then 32 will be used as team number in leaderboard and 'Awesome Team' as team name 173 | # Default: false 174 | use.number = false 175 | 176 | # If you want to enable car livery preview in team's UI page for this event set this to true. 177 | # Make sure livery file are present in the server. More specifically it uses preview.png (or preview.jpg) 178 | # file of the skin to show in UI. This is mostly liked be used when using 179 | # custom liveries though it will work for stock liveries also 180 | livery.preview.enable = false 181 | 182 | 183 | ###################################################### 184 | # MySQL database details to store session data 185 | ###################################################### 186 | [database] 187 | # MySQL server host name 188 | # Only change it when you are running MySQL server on different machine 189 | # In that case use that's server IP/hostname here 190 | # Default: '127.0.0.1' 191 | host = '10.5.0.5' 192 | 193 | # MySQL server port 194 | # Only used when MySQL server is not running on same machine 195 | # i.e above host config is not localhost 196 | # Default: 0 197 | port = 0 198 | 199 | # MySQL user name to connect to database 200 | # Default: 'simview' 201 | user = 'simview' 202 | 203 | # MySQL database name which will be used by SimView 204 | # Default: 'simview' 205 | schema = 'simview' 206 | 207 | # Password to access MySQL Database 208 | password = 'simviewpw' 209 | 210 | 211 | ###################################################### 212 | # Overrides 213 | ###################################################### 214 | [overrides] 215 | # Override default car class. The updated value will be saved in DB 216 | # when the first time the car is used once the config is added here 217 | # Name used here should be the folder name of that car in AC directory 218 | # e.x To override class for Mazda MX5 to 'Cup' add 219 | # ks_mazda_mx5_cup = 'Cup' 220 | [overrides.car.class] 221 | # ks_mazda_mx5_cup = 'Cup' 222 | 223 | # Override user/driver country. Get the country codes from https://www.countryflags.io/ website. 224 | # Use the captial letter ones like 'AD', 'IT' etc. 225 | # When the first time driver connect after adding here his country will be updated to DB 226 | # Left hand side should be steam id of the driver 227 | # e.x To override country for driver with steam id 76561198252222222 to Italy (code: IT) add 228 | # 76561198252222222 = 'IT' 229 | [overrides.user.country] 230 | # 76561198252222222 = 'IT' -------------------------------------------------------------------------------- /conf_simview/config4.toml: -------------------------------------------------------------------------------- 1 | # Note: Please go through this before modifying any configs 2 | # 3 | # Whenever new update comes with change in config.detail.toml (it will be marked in changelog), 4 | # replace your old config.toml with new one 5 | # 6 | # Configs marked with value like <> are required to be change else servers will not start, 7 | # rest you can leave as it is if it meets your requirements 8 | # 9 | # Value type: 10 | # Ex. 'abc' (Prefer single quote (') instead of double quote (") unless your value has single quote in itself. 11 | # Single quote will allow backward slash (\) in Windows paths) 12 | # Ex. 123 13 | # Ex. true or false only 14 | 15 | 16 | ###################################################### 17 | # Config for Game 18 | ###################################################### 19 | [game] 20 | # Location of Assetto Corsa server directory, used to get car and track info. 21 | # For car and track info make sure ui folders of respective cars and tracks are also present. 22 | # This should be absolute path to root folder of AC server without the trailing slash 23 | # Ex: 'C:/Steam/steamapps/common/assettocorsa/server' or 24 | # Ex: 'C:\Steam\steamapps\common\assettocorsa\server' on Windows (Both forward and backward slash will work on Windows) 25 | # Ex: '/home/ubuntu/server' on Linux (Use forward slash for Linux) 26 | path = '/home/assetto/server-manager/servers/SERVER_03/assetto' 27 | 28 | 29 | ###################################################### 30 | # Config for HTTP App 31 | ###################################################### 32 | [app] 33 | # App HTTP server configs 34 | [app.server] 35 | # IP address to bind HTTP port 36 | # Default: '0.0.0.0' 37 | host = '0.0.0.0' 38 | 39 | # Port of HTTP server 40 | # Default: 10100 41 | port = 10100 42 | 43 | # IP address or hostname or domain name where the HTTP server is running 44 | # This will be used to show live event link in Welcome message in AC chat 45 | # Default: '', in this case link won't be shown in the message 46 | public.host = '' 47 | 48 | # Absolute path (if not 'html') of public UI files without the trailing slash 49 | # Note: Only change if you are copying or moving html folder out of default location 50 | # Default: 'html' folder in current directory 51 | doc.root = 'html' 52 | 53 | # Absolute path to folder where to cache AC specific assets files ex. track preview and car badge. 54 | # This is required as once you remove/change content of AC server the cached files will be used when viewing old event pages 55 | # It is recommended to have this directory outside simview folder so you can update simview without overwriting it. 56 | cache.path = '/home/assetto/server-manager/servers/SERVER_03/assetto/simview' 57 | 58 | # Number of thread to process HTTP requests 59 | # 0 indicates that number of threads will be automatically set by HTTP process based on available CPUs 60 | # Any non-zero value will set threads to that specific value 61 | # Default: 0 62 | threads = 0 63 | 64 | [app.live] 65 | # When enabled user chat will be saved in DB and shown in Session Feed 66 | # When disabled chats are not stored in DB. 67 | # Default: false 68 | session.feed.show.chat = false 69 | 70 | 71 | ###################################################### 72 | # Config for Writer 73 | ###################################################### 74 | [writer] 75 | # Config for HTTP server in Writer process to server Leaderboard websocket API 76 | # Every writer will have a HTTP server for Leaderboard API with dedicated one port and thread 77 | [writer.http] 78 | 79 | # Port used by HTTP server to listen for Websocket connection. 80 | # This port will have to be opened to public in your machine (VM) so that viewer 81 | # can connect to leaderboard 82 | # Default: 0, when it is 0 the local port of Writer process (ac.server.udp.local.port) 83 | # will be used for leaderboard HTTP server as well 84 | port = 0 85 | 86 | # Periodic broadcast interval for Live Leaderboard API in milliseconds 87 | # This is the interval in which viewer will receive update to live leaderboard 88 | # once they are connected to websocket 89 | # Default: 2000 (= 2s) 90 | leaderboard.broadcast.interval.ms = 2000 91 | 92 | 93 | ###################################################### 94 | # Logging file will be generated in 'log' directory 95 | # Used by both HTTP and Writer process 96 | ###################################################### 97 | [log] 98 | # Target 'console' or 'file' 99 | # Default: 'file' 100 | target = 'console' 101 | 102 | # Level 'trace', 'debug', 'info', 'warning', 'error', 'critical', 'off' 103 | # Default: 'info' 104 | level = 'info' 105 | 106 | 107 | ###################################################### 108 | # Assetto Corsa Server and event detail 109 | ###################################################### 110 | [ac.server] 111 | # IP address of the Assetto Corsa server 112 | # Default: '127.0.0.1' 113 | host = '127.0.0.1' 114 | 115 | # Update driver name when they connect with new name to the server 116 | # This could be set on per writer process if you are running multiple 117 | # Default: false 118 | update.driver.name = false 119 | 120 | # AC server UDP Plugin ports 121 | [ac.server.udp] 122 | # Port opened by Assetto Corsa server 123 | # In AC server's server_cfg.ini file, the value set for UDP_PLUGIN_LOCAL_PORT after 124 | # enabling UDP plugin for AC server. You only need to set it when you are using some 125 | # proxy app (like sTracker or ACRelay) else you can leave it to default (0) so that it 126 | # will automatically get picked from the server_cfg.ini file 127 | # Default: 0 (port will be picked from AC server config file) 128 | port = 11503 129 | 130 | # Port used by SimView to received packets from AC server 131 | # In AC server's server_cfg.ini file, the port set in UDP_PLUGIN_ADDRESS. 132 | # Ex. If UDP_PLUGIN_ADDRESS is 127.0.0.1:10002, set only 10002 value here. 133 | # You only need to set it when you are using some 134 | # proxy app (like sTracker or ACRelay) else you can leave it to default (0) so that it 135 | # will automatically get picked from the server_cfg.ini file 136 | local.port = 12503 137 | 138 | # With Assetto Corsa Server Manager (ACSM) v2+, the AC server log format has been changed. 139 | # To get correct leaderboard with Sector times and Tyre info make this config true when using AC servers 140 | # from ACSM v2+. When enabled SimView will use Enhanced UDP interface of ACSM to get sector times and current tyre 141 | # Note: Tyre info is only available from ACSM v2.1.4 142 | # Default: false 143 | use.acsm.udp = true 144 | 145 | # The interval in milliseconds to receive realtime update from AC server 146 | # Accuracy can be improved with lower value for this but the default is good enough 147 | # Note: This config should be always less then writer.leaderboard.broadcast.interval.ms 148 | # Default: 200 (5Hz) 149 | realtime.update.interval.ms = 200 150 | 151 | [ac.server.event] 152 | # Event name, all sessions with this name will be grouped together 153 | # Default: Use the server name as event name, those will also be grouped 154 | name = '' 155 | 156 | # When enabled SimView will store telemetry in DB for each eligible lap done on the server. 157 | # ac.server.udp.realtime.update.interval.ms directly 158 | # influence the accuracy of sampled telemetry and also the telemtry data size for a lap. 159 | # If disabling this feature you can also consider to increase ac.server.udp.realtime.update.interval.ms 160 | # Default: true 161 | lap.telemetry.enable = true 162 | 163 | [ac.server.event.team] 164 | # If this event is team based event modify this to true. When teams is enable it will parse and 165 | # create teams based on entry_list.ini file. The GUIDs should be ';' separated and 166 | # make sure LOCKED_ENTRY_LIST=1 and PICKUP_MODE_ENABLED=1 is set in server_cfg.ini file 167 | # Note: All config below this will only be effective if this is true. 168 | # Default: false 169 | enable = false 170 | 171 | # If you are providing team names in entry_list.ini file in format 'no.|Team Name' like 172 | # '32|Awesome Team' then 32 will be used as team number in leaderboard and 'Awesome Team' as team name 173 | # Default: false 174 | use.number = false 175 | 176 | # If you want to enable car livery preview in team's UI page for this event set this to true. 177 | # Make sure livery file are present in the server. More specifically it uses preview.png (or preview.jpg) 178 | # file of the skin to show in UI. This is mostly liked be used when using 179 | # custom liveries though it will work for stock liveries also 180 | livery.preview.enable = false 181 | 182 | 183 | ###################################################### 184 | # MySQL database details to store session data 185 | ###################################################### 186 | [database] 187 | # MySQL server host name 188 | # Only change it when you are running MySQL server on different machine 189 | # In that case use that's server IP/hostname here 190 | # Default: '127.0.0.1' 191 | host = '10.5.0.5' 192 | 193 | # MySQL server port 194 | # Only used when MySQL server is not running on same machine 195 | # i.e above host config is not localhost 196 | # Default: 0 197 | port = 0 198 | 199 | # MySQL user name to connect to database 200 | # Default: 'simview' 201 | user = 'simview' 202 | 203 | # MySQL database name which will be used by SimView 204 | # Default: 'simview' 205 | schema = 'simview' 206 | 207 | # Password to access MySQL Database 208 | password = 'simviewpw' 209 | 210 | 211 | ###################################################### 212 | # Overrides 213 | ###################################################### 214 | [overrides] 215 | # Override default car class. The updated value will be saved in DB 216 | # when the first time the car is used once the config is added here 217 | # Name used here should be the folder name of that car in AC directory 218 | # e.x To override class for Mazda MX5 to 'Cup' add 219 | # ks_mazda_mx5_cup = 'Cup' 220 | [overrides.car.class] 221 | # ks_mazda_mx5_cup = 'Cup' 222 | 223 | # Override user/driver country. Get the country codes from https://www.countryflags.io/ website. 224 | # Use the captial letter ones like 'AD', 'IT' etc. 225 | # When the first time driver connect after adding here his country will be updated to DB 226 | # Left hand side should be steam id of the driver 227 | # e.x To override country for driver with steam id 76561198252222222 to Italy (code: IT) add 228 | # 76561198252222222 = 'IT' 229 | [overrides.user.country] 230 | # 76561198252222222 = 'IT' -------------------------------------------------------------------------------- /conf_simview/config5.toml: -------------------------------------------------------------------------------- 1 | # Note: Please go through this before modifying any configs 2 | # 3 | # Whenever new update comes with change in config.detail.toml (it will be marked in changelog), 4 | # replace your old config.toml with new one 5 | # 6 | # Configs marked with value like <> are required to be change else servers will not start, 7 | # rest you can leave as it is if it meets your requirements 8 | # 9 | # Value type: 10 | # Ex. 'abc' (Prefer single quote (') instead of double quote (") unless your value has single quote in itself. 11 | # Single quote will allow backward slash (\) in Windows paths) 12 | # Ex. 123 13 | # Ex. true or false only 14 | 15 | 16 | ###################################################### 17 | # Config for Game 18 | ###################################################### 19 | [game] 20 | # Location of Assetto Corsa server directory, used to get car and track info. 21 | # For car and track info make sure ui folders of respective cars and tracks are also present. 22 | # This should be absolute path to root folder of AC server without the trailing slash 23 | # Ex: 'C:/Steam/steamapps/common/assettocorsa/server' or 24 | # Ex: 'C:\Steam\steamapps\common\assettocorsa\server' on Windows (Both forward and backward slash will work on Windows) 25 | # Ex: '/home/ubuntu/server' on Linux (Use forward slash for Linux) 26 | path = '/home/assetto/server-manager/servers/SERVER_04/assetto' 27 | 28 | 29 | ###################################################### 30 | # Config for HTTP App 31 | ###################################################### 32 | [app] 33 | # App HTTP server configs 34 | [app.server] 35 | # IP address to bind HTTP port 36 | # Default: '0.0.0.0' 37 | host = '0.0.0.0' 38 | 39 | # Port of HTTP server 40 | # Default: 10100 41 | port = 10100 42 | 43 | # IP address or hostname or domain name where the HTTP server is running 44 | # This will be used to show live event link in Welcome message in AC chat 45 | # Default: '', in this case link won't be shown in the message 46 | public.host = '' 47 | 48 | # Absolute path (if not 'html') of public UI files without the trailing slash 49 | # Note: Only change if you are copying or moving html folder out of default location 50 | # Default: 'html' folder in current directory 51 | doc.root = 'html' 52 | 53 | # Absolute path to folder where to cache AC specific assets files ex. track preview and car badge. 54 | # This is required as once you remove/change content of AC server the cached files will be used when viewing old event pages 55 | # It is recommended to have this directory outside simview folder so you can update simview without overwriting it. 56 | cache.path = '/home/assetto/server-manager/servers/SERVER_04/assetto/simview' 57 | 58 | # Number of thread to process HTTP requests 59 | # 0 indicates that number of threads will be automatically set by HTTP process based on available CPUs 60 | # Any non-zero value will set threads to that specific value 61 | # Default: 0 62 | threads = 0 63 | 64 | [app.live] 65 | # When enabled user chat will be saved in DB and shown in Session Feed 66 | # When disabled chats are not stored in DB. 67 | # Default: false 68 | session.feed.show.chat = false 69 | 70 | 71 | ###################################################### 72 | # Config for Writer 73 | ###################################################### 74 | [writer] 75 | # Config for HTTP server in Writer process to server Leaderboard websocket API 76 | # Every writer will have a HTTP server for Leaderboard API with dedicated one port and thread 77 | [writer.http] 78 | 79 | # Port used by HTTP server to listen for Websocket connection. 80 | # This port will have to be opened to public in your machine (VM) so that viewer 81 | # can connect to leaderboard 82 | # Default: 0, when it is 0 the local port of Writer process (ac.server.udp.local.port) 83 | # will be used for leaderboard HTTP server as well 84 | port = 0 85 | 86 | # Periodic broadcast interval for Live Leaderboard API in milliseconds 87 | # This is the interval in which viewer will receive update to live leaderboard 88 | # once they are connected to websocket 89 | # Default: 2000 (= 2s) 90 | leaderboard.broadcast.interval.ms = 2000 91 | 92 | 93 | ###################################################### 94 | # Logging file will be generated in 'log' directory 95 | # Used by both HTTP and Writer process 96 | ###################################################### 97 | [log] 98 | # Target 'console' or 'file' 99 | # Default: 'file' 100 | target = 'console' 101 | 102 | # Level 'trace', 'debug', 'info', 'warning', 'error', 'critical', 'off' 103 | # Default: 'info' 104 | level = 'info' 105 | 106 | 107 | ###################################################### 108 | # Assetto Corsa Server and event detail 109 | ###################################################### 110 | [ac.server] 111 | # IP address of the Assetto Corsa server 112 | # Default: '127.0.0.1' 113 | host = '127.0.0.1' 114 | 115 | # Update driver name when they connect with new name to the server 116 | # This could be set on per writer process if you are running multiple 117 | # Default: false 118 | update.driver.name = false 119 | 120 | # AC server UDP Plugin ports 121 | [ac.server.udp] 122 | # Port opened by Assetto Corsa server 123 | # In AC server's server_cfg.ini file, the value set for UDP_PLUGIN_LOCAL_PORT after 124 | # enabling UDP plugin for AC server. You only need to set it when you are using some 125 | # proxy app (like sTracker or ACRelay) else you can leave it to default (0) so that it 126 | # will automatically get picked from the server_cfg.ini file 127 | # Default: 0 (port will be picked from AC server config file) 128 | port = 11504 129 | 130 | # Port used by SimView to received packets from AC server 131 | # In AC server's server_cfg.ini file, the port set in UDP_PLUGIN_ADDRESS. 132 | # Ex. If UDP_PLUGIN_ADDRESS is 127.0.0.1:10002, set only 10002 value here. 133 | # You only need to set it when you are using some 134 | # proxy app (like sTracker or ACRelay) else you can leave it to default (0) so that it 135 | # will automatically get picked from the server_cfg.ini file 136 | local.port = 12504 137 | 138 | # With Assetto Corsa Server Manager (ACSM) v2+, the AC server log format has been changed. 139 | # To get correct leaderboard with Sector times and Tyre info make this config true when using AC servers 140 | # from ACSM v2+. When enabled SimView will use Enhanced UDP interface of ACSM to get sector times and current tyre 141 | # Note: Tyre info is only available from ACSM v2.1.4 142 | # Default: false 143 | use.acsm.udp = true 144 | 145 | # The interval in milliseconds to receive realtime update from AC server 146 | # Accuracy can be improved with lower value for this but the default is good enough 147 | # Note: This config should be always less then writer.leaderboard.broadcast.interval.ms 148 | # Default: 200 (5Hz) 149 | realtime.update.interval.ms = 200 150 | 151 | [ac.server.event] 152 | # Event name, all sessions with this name will be grouped together 153 | # Default: Use the server name as event name, those will also be grouped 154 | name = '' 155 | 156 | # When enabled SimView will store telemetry in DB for each eligible lap done on the server. 157 | # ac.server.udp.realtime.update.interval.ms directly 158 | # influence the accuracy of sampled telemetry and also the telemtry data size for a lap. 159 | # If disabling this feature you can also consider to increase ac.server.udp.realtime.update.interval.ms 160 | # Default: true 161 | lap.telemetry.enable = true 162 | 163 | [ac.server.event.team] 164 | # If this event is team based event modify this to true. When teams is enable it will parse and 165 | # create teams based on entry_list.ini file. The GUIDs should be ';' separated and 166 | # make sure LOCKED_ENTRY_LIST=1 and PICKUP_MODE_ENABLED=1 is set in server_cfg.ini file 167 | # Note: All config below this will only be effective if this is true. 168 | # Default: false 169 | enable = false 170 | 171 | # If you are providing team names in entry_list.ini file in format 'no.|Team Name' like 172 | # '32|Awesome Team' then 32 will be used as team number in leaderboard and 'Awesome Team' as team name 173 | # Default: false 174 | use.number = false 175 | 176 | # If you want to enable car livery preview in team's UI page for this event set this to true. 177 | # Make sure livery file are present in the server. More specifically it uses preview.png (or preview.jpg) 178 | # file of the skin to show in UI. This is mostly liked be used when using 179 | # custom liveries though it will work for stock liveries also 180 | livery.preview.enable = false 181 | 182 | 183 | ###################################################### 184 | # MySQL database details to store session data 185 | ###################################################### 186 | [database] 187 | # MySQL server host name 188 | # Only change it when you are running MySQL server on different machine 189 | # In that case use that's server IP/hostname here 190 | # Default: '127.0.0.1' 191 | host = '10.5.0.5' 192 | 193 | # MySQL server port 194 | # Only used when MySQL server is not running on same machine 195 | # i.e above host config is not localhost 196 | # Default: 0 197 | port = 0 198 | 199 | # MySQL user name to connect to database 200 | # Default: 'simview' 201 | user = 'simview' 202 | 203 | # MySQL database name which will be used by SimView 204 | # Default: 'simview' 205 | schema = 'simview' 206 | 207 | # Password to access MySQL Database 208 | password = 'simviewpw' 209 | 210 | 211 | ###################################################### 212 | # Overrides 213 | ###################################################### 214 | [overrides] 215 | # Override default car class. The updated value will be saved in DB 216 | # when the first time the car is used once the config is added here 217 | # Name used here should be the folder name of that car in AC directory 218 | # e.x To override class for Mazda MX5 to 'Cup' add 219 | # ks_mazda_mx5_cup = 'Cup' 220 | [overrides.car.class] 221 | # ks_mazda_mx5_cup = 'Cup' 222 | 223 | # Override user/driver country. Get the country codes from https://www.countryflags.io/ website. 224 | # Use the captial letter ones like 'AD', 'IT' etc. 225 | # When the first time driver connect after adding here his country will be updated to DB 226 | # Left hand side should be steam id of the driver 227 | # e.x To override country for driver with steam id 76561198252222222 to Italy (code: IT) add 228 | # 76561198252222222 = 'IT' 229 | [overrides.user.country] 230 | # 76561198252222222 = 'IT' -------------------------------------------------------------------------------- /conf_servermanager/config.yml: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # Assetto Server Manager Configuration 4 | # https://github.com/JustaPenguin/assetto-server-manager 5 | # 6 | # Thanks for using server manager! 7 | # 8 | # 9 | # note that changes to this file require a restart of server manager to work! :) 10 | # 11 | # 12 | # The below file is in YAML configuration format. Spacing is important within 13 | # YAML, and can cause server manager not to launch correctly. You can validate 14 | # this file online at: http://www.yamllint.com/ 15 | # 16 | ################################################################################ 17 | 18 | ################################################################################ 19 | # 20 | # steam settings - server manager can install the assetto corsa 21 | # server for you using steamcmd (if you'd like) 22 | # 23 | ################################################################################ 24 | steam: 25 | # steam username and password. we recommend creating a separate account with 26 | # steamguard disabled to use this application. Assetto Corsa Server is FREE 27 | # so you don't need to worry about purchasing it again. 28 | # 29 | # server manager uses this information ONLY to install the 30 | # assetto corsa server. 31 | # 32 | # however, if you do not wish to provide server manager with this information, 33 | # leave it blank and install assetto corsa server to the path you specified in 34 | # install_path (default: 'assetto') 35 | username: 36 | password: 37 | 38 | # where to install assetto corsa server 39 | install_path: assetto 40 | 41 | # set this to true to force an install every time the server manager is loaded 42 | force_update: false 43 | 44 | ################################################################################ 45 | # 46 | # http settings 47 | # 48 | ################################################################################ 49 | http: 50 | # hostname is the hostname the HTTP server should listen on. 51 | # change '0.0.0.0' to 'localhost' if you don't want server manager to be 52 | # available on the web. 53 | hostname: 0.0.0.0:8772 54 | 55 | # session key is used to encrypt the http session 56 | # You MUST change this. You can use a website such 57 | # as https://passwordsgenerator.net/ to generate a value for it. 58 | session_key: f7b00b7cfbc96cb929ee39ee5669eaa21fdf239d3c5f813a568b5f606e9a75e8 59 | 60 | # server manager base URL is the URL that the server manager is accessible on 61 | # used for ACSR integration and links in championship welcome message in game 62 | # you can leave this blank if not required 63 | # example: https://opengt3.emperorservers.com <-- requires https:// or 64 | # http://, no closing / at the end 65 | server_manager_base_URL: 66 | 67 | # session store type can be one of: 'cookie' or 'filesystem' 68 | # if it is 'filesystem', you must set the session_store_path below. 69 | # cookie is best for most users, but if you are running multiple Server 70 | # Manager instances on the same IP address, you should use filesystem. 71 | session_store_type: cookie 72 | 73 | # session store path is where to save the session store 74 | # (if using 'filesystem' above) 75 | session_store_path: "" 76 | 77 | # session max age. uncomment this to change the session max age from the default (30 days). 78 | # if you're using the 'filesystem' session_store_type, sessions older than this age will 79 | # be cleared up every 48h. 80 | # session_max_age: 720h 81 | 82 | tls: 83 | # TLS configuration. Server Manager supports TLS v1.2 upwards. As of 12/03/2020, 84 | # the Server Manager configuration yields a perfect score from SSL Labs. 85 | # If you enable this, you likely want the hostname (above) to listen on port 443. 86 | enabled: false 87 | # the path to the SSL certificate file. 88 | cert_path: "" 89 | # the path to the SSL key file. 90 | key_path: "" 91 | 92 | ################################################################################ 93 | # 94 | # monitoring - enabling monitoring allows us to find out more information 95 | # about how you're using Server Manager, as well as seeing any issues that may 96 | # occur so we can collect and fix them. We understand that you may not wish 97 | # for us to do any monitoring, so you can disable it by setting 'enabled' 98 | # to false 99 | # 100 | ################################################################################ 101 | # with monitoring enabled, the following systems are in place: 102 | # 103 | # 1. Sentry (https://sentry.io) monitoring of both Server Manager's backend 104 | # code and frontend javascript. This lets us see application errors when 105 | # they occur. 106 | # 107 | # 2. Google Analytics (https://analytics.google.com) tracking so we can see how 108 | # many people use Server Manager, when they use it and where they are in 109 | # the world. 110 | # 111 | # 3. Prometheus Monitoring - this provides more technical debugging in terms of 112 | # memory and CPU usage, etc. This is *NOT* sent to us. We have added this in 113 | # so that anybody who wants to monitor Server Manager for themselves can do 114 | # so with Prometheus. We use it internally at assettocorsaservers.com to 115 | # track our Server installs to help us improve our service. 116 | # 117 | # you can access the prometheus endpoint at: 118 | # /metrics 119 | # 120 | # 121 | # once again, if you do not wish for Server Manager to do these things, simply 122 | # set 'enabled' to false and monitoring will not take place. 123 | ################################################################################ 124 | monitoring: 125 | enabled: true 126 | 127 | ################################################################################ 128 | # 129 | # data storage - where server manager keeps your data! 130 | # 131 | ################################################################################ 132 | store: 133 | # store type: this can be one of: 134 | # - 'json' - saves each custom race, championship as separate JSON files 135 | # in the directory specified by store_path 136 | # - 'boltdb' - saves all content inside a single database file specified by 137 | # store_path 138 | # 139 | # boltdb is recommended for most users. 140 | type: boltdb 141 | 142 | # where to save the server manager data 143 | path: server_manager.db 144 | 145 | # shared data path: Set the same directory for multiple AC Server Manager 146 | # instances to share accounts, race weekend, championship, entrants and custom 147 | # events across them. Leave blank to use the same path as the one set up here. 148 | # works only with JSON database 149 | shared_data_path: 150 | 151 | # check for new scheduled races not created by server manager on a loop. this is an experimental 152 | # feature, and should not be used by most people. formats look like, e.g. 15s, 1m, 2h 153 | # 0s == disabled. recommended values are 5m and above. 154 | scheduled_event_check_loop: 0s 155 | 156 | ################################################################################ 157 | # 158 | # user management - this is now mostly done via the web interface. 159 | # 160 | ################################################################################ 161 | accounts: 162 | # admin password override is used to override the admin password in the case 163 | # that you have forgotten it. set it to e.g. 'password' and log in with: 164 | # username: admin 165 | # password: password 166 | # and you will be prompted to change your admin password back to something you 167 | # can remember 168 | # 169 | # If you are logging in for the first time, do not use this override system. 170 | # Instead, log in by using these credentials: 171 | # username: admin 172 | # password: servermanager 173 | # As soon as you log in, you will be immediately asked to set a new password. 174 | admin_password_override: 175 | 176 | ################################################################################ 177 | # 178 | # live map config 179 | # 180 | ################################################################################ 181 | live_map: 182 | # how often to refresh the map data in milliseconds. This value can't be below 183 | # 200. If you find that championship events do not finish properly, try 184 | # changing this to a higher number. 185 | # set this to 0 to disable live map. 186 | refresh_interval_ms: 500 187 | 188 | 189 | ################################################################################ 190 | # 191 | # server config 192 | # 193 | ################################################################################ 194 | server: 195 | # Server Manager should never need running as admin/root. 196 | # If the below setting is set to `false`, Server Manager will not error and exit 197 | # if it is running as admin/root. If the setting is `true`, Server Manager will 198 | # not start if you run it as admin/root. 199 | enable_admin_check: false 200 | 201 | # audit logging logs the actions of registered users locally on your server. 202 | # Only Admins can access the logs, they are intended for tracking if users 203 | # have deleted content, started/stopped events when they shouldn't have etc. 204 | audit_logging: true 205 | 206 | # Server Manager has built in support for some plugins (sTracker, KissMyRank 207 | # and Real Penalty). If you want to use these plugins you can enable them 208 | # here, then use the Server Manager UI to activate and configure them. 209 | # 210 | # note: If you are using any of these plugins please do not contact us for 211 | # support with them. If you are experiencing any issues with stability etc. 212 | # the first thing we will always suggest is disabling plugins. If you are 213 | # experiencing issues with the plugins themselves we cannot provide 214 | # support as we do not have access to the source code of the plugins. 215 | disable_plugins: false 216 | 217 | # performance mode disables live timing entirely, and prioritises low cpu 218 | # usage. 219 | performance_mode: false 220 | 221 | # set this to 'true' if you don't want server manager to open a browser window 222 | # on launch on windows 223 | dont_open_browser: false 224 | 225 | # set this to 'true' if you want server manager to scan content folders for 226 | # changes every 15 seconds and update the search index with changes 227 | # this is useful for multi-server setups with a shared content folder so that 228 | # each server manager instance can see added/removed cars as they change 229 | scan_content_folder_for_changes: false 230 | 231 | # the following options are specific to results files. 232 | results: 233 | # index laps tells the results search indexer to store laps in the results search index. 234 | # please note that enabling this can lead to extremely long indexing times. 235 | # it is useful if you wish to perform searches in the results page based on lap times. 236 | # you can change this option at any time, but it will require an index rebuild on the Server Options page. 237 | index_laps: false 238 | 239 | # index crashes tells the results search indexer to store crashes in the results search index. 240 | # please note that enabling this can lead to extremely long indexing times. 241 | # it is useful if you wish to perform searches in the results page based on crashes. 242 | # you can change this option at any time, but it will require an index rebuild on the Server Options page. 243 | index_crashes: false 244 | 245 | # list of commands to run on server start and kill on server stop. this should 246 | # contain the full command with arguments to run the given program. 247 | # 248 | # note: if you are looking for stracker support, Server Manager supports it via 249 | # the UI! Go to the "STracker" page in Server Manager for more instructions. 250 | # 251 | # note #2: if you are looking for KissMyRank support, Server Manager supports it 252 | # via the UI! Go to the "KissMyRank" page in Server Manager for more instructions. 253 | # 254 | # you can use additional plugins with AC Server Manager, but while configuring 255 | # them you have to ignore the ports that AC Server Manager writes in the 256 | # server_cfg.ini, as the Server Manager provides an interface to the plugins 257 | # instead. The plugin ports in the Server Options page are the ones that must 258 | # be used for the plugin configuration. 259 | # 260 | # Note that AC Server Manager provides an interface for a single plugin only, 261 | # as the AC game server does. If you want to chain multiple plugins, please 262 | # follow the documentation of the plugins you're using. Plugins usually 263 | # feature interfaces so additional plugins can be chained between themselves. 264 | # 265 | # you can of course add your own commands (whatever you like!) here. 266 | # 267 | # each executable specified is run from the directory it is inside, for example, 268 | # the command: 269 | # 270 | # /my/cool/plugin/path/run.sh --some-opt config.json 271 | # now actually performs the following two commands: 272 | # 273 | # 1. cd /my/cool/plugin/path 274 | # 2. ./run.sh --some-opt config.json 275 | plugins: 276 | # uncomment the two lines below to run the command '/my/cool/plugin/path/run.sh --some-opt config.json' 277 | - executable: assetto/simview/SimViewWriter 278 | arguments: [] 279 | 280 | ################################################################################ 281 | # 282 | # championships 283 | # 284 | ################################################################################ 285 | championships: 286 | # reCAPTCHA is used to protect registration requests to championships. You 287 | # must specify a site_key and secret_key to enable reCAPTCHA 288 | # Register for reCAPTCHA here: https://www.google.com/recaptcha 289 | # Please note you must register for reCAPTCHA v2. 290 | # 291 | # Note: reCAPTCHA is NOT required, but highly recommended if you are running 292 | # Championship Sign Up Forms 293 | recaptcha: 294 | site_key: 295 | secret_key: 296 | 297 | ################################################################################ 298 | # 299 | # lua config - configure lua plugins 300 | # 301 | ################################################################################ 302 | lua: 303 | # lua plugins allow you to run custom lua scripts through hooks with server 304 | # manager! If you're interested have a look at the server-manager/plugins 305 | # folder to see some examples! 306 | enabled: false 307 | --------------------------------------------------------------------------------