diff --git a/acc-web/Dockerfile b/acc-web/Dockerfile index 15ae5af..f8a8b8d 100644 --- a/acc-web/Dockerfile +++ b/acc-web/Dockerfile @@ -14,17 +14,17 @@ RUN echo steam steam/license note '' | debconf-set-selections RUN apt install wget screen -y #RUN add-apt-repository multiverse -RUN apt update -RUN apt install lib32gcc-s1 steamcmd -y +#RUN apt update +#RUN apt install lib32gcc-s1 steamcmd -y -RUN wget https://github.com/assetto-corsa-web/accweb/releases/download/v1.21.0/accweb_v1.21.0.zip +#RUN wget https://github.com/assetto-corsa-web/accweb/releases/download/v1.21.0/accweb_v1.21.0.zip RUN mkdir -p /accserver COPY ./accserver / -RUN unzip accweb_v1.21.0.zip -d /accweb +#RUN unzip accweb_v1.21.0.zip -d /accweb RUN mkdir -p /accweb - +COPY ./accweb/* /accweb/ WORKDIR /accweb CMD ["./accweb"] \ No newline at end of file diff --git a/acc-web/acc-web/LICENSE b/acc-web/acc-web/LICENSE new file mode 100644 index 0000000..8b23445 --- /dev/null +++ b/acc-web/acc-web/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/acc-web/acc-web/README.md b/acc-web/acc-web/README.md new file mode 100644 index 0000000..9cd4863 --- /dev/null +++ b/acc-web/acc-web/README.md @@ -0,0 +1,129 @@ +# Assetto Corsa Competizione Server Web Interface + +[![Discord Shield](https://discordapp.com/api/guilds/913752018588422174/widget.png?style=shield)](https://discord.gg/AVWdF56t6c) +[![CircleCI](https://circleci.com/gh/assetto-corsa-web/accweb.svg?style=svg)](https://circleci.com/gh/assetto-corsa-web/accweb) +[![Go Report Card](https://goreportcard.com/badge/github.com/assetto-corsa-web/accweb)](https://goreportcard.com/report/github.com/assetto-corsa-web/accweb) + +The successor of [acweb](https://github.com/assetto-corsa-web/acweb)! accweb lets you manage your Assetto Corsa Competizione servers via a nice and simple web interface. You can start, stop and configure server instances and monitor their status. + +## Table of contents + +1. [Features](#features) +2. [Changelog](#changelog) +3. [Installation](#installation) +4. [Backup](#backup) +5. [Contribute and support](#support) +6. [Build release](#release) +7. [Links](#links) +8. [License](#license) +9. [ACCWeb Discord Server](#discord) + +## Features + + +* create and manage as many server instances as you like +* configure your instances in browser +* start/stop instances and monitor their status +* view server logs +* copy server configurations +* import/export server configuration files +* delete server configurations +* three different permissions: admin, mod and read only (using three different passwords) +* easy setup + * no database required + * simple configuration using environment variables + +## Changelog + + +See [CHANGELOG.md](CHANGELOG.md). + +## Installation and configuration + + +accweb is installed by extracting the zip on your server, modifing the YAML configuration file to your needs and starting it in a terminal. + +### Manuall installation + +1. download the latest release from the release section on GitHub +2. extract the zip file on your server +3. edit the `config.yml` to match your needs +4. open a terminal +5. change directory to the accweb installation location +6. start accweb using `./accweb` on Linux and `accweb.exe` on Windows +8. leave the terminal open (or start in background using screens on Linux for example) +9. visit the server IP/domain and port you've configured, for example: http://example.com:8080 + +I recommend to setup an SSL certificate, but that's out of scope for this instructions. You can enable a certificate inside the `config.yml`. + +**Note that you have to install [wine](https://www.winehq.org/) if you're on Linux.** + +## Backup + + +To backup your files, copy and save the `config` directory as well as the `config.yml`. The `config` directory can later be placed inside the new accweb version directory and you can adjust the new `config.yml` based on your old configuration (don't overwrite it, there meight be breaking changes). + +## Contribute and support + + +If you like to contribute, have questions or suggestions you can open tickets and pull requests on GitHub. + +All Go code must have been run through go fmt. The frontend and backend changes must be (manually) tested on your system. If you have issues running it locally open a ticket. + +To run the accweb locally is really simple, make sure that the attribute `dev` is set to true in your `config.yml` file. + +### Frontend development environment + +Our current frontend was built using Vue.js and can be found inside `public` directory. + +To run the watcher use the following command. + +```shell +make run-dev-frontend +``` +Then when you edit any js file, the watcher will detect and rebuild the js package. + +### Backend development environment + +ACCweb backend is running over golang and can be found inside `internal` directory. + +Use the following command to run the backend on your terminal. + +```shell +make run-dev-backend +``` +Keep in mind that you need to restart the command for see the changes that you made in the code working (or not :zany_face:) + +### Visual Studio Code - Remote container + +There is a pre-built development environment setup for ACCWeb for Visual Studio Code and Remote Containers. Please, check here how to setup and use: https://code.visualstudio.com/docs/remote/containers + +## Build release + + +To build a release, execute the `build_release.sh` script (on Linux) or follow the steps inside the script. You need to pass the build version as the first parameter. Example: +To build a release, execute the `build_release.sh` script (on Linux) or follow the steps inside the script. You need to pass the build version as the first parameter. Example: + +```shell +./build/build_release.sh 1.2.3 +``` + +This will create a directory `releases/accweb_1.2.3` containing the release build of accweb. This directory can be zipped, uploaded to GitHub and deployed on a server. + +## Links + + +* [Docker Hub](https://cloud.docker.com/repository/docker/kugel/accweb/general) +* [Assetto Corsa Forums](https://www.assettocorsa.net/forum/index.php?threads/release-accweb-assetto-corsa-competizione-server-management-tool-via-web-interface.57572/) + +## License + + +MIT + +## ACCWeb Discord Server + + +Join us on our Discord server to get and provide support. + +[![ACCWeb Discord](https://discordapp.com/api/guilds/913752018588422174/widget.png?style=banner4)](https://discord.gg/AVWdF56t6c) diff --git a/acc-web/acc-web/accweb b/acc-web/acc-web/accweb new file mode 100755 index 0000000..604159c Binary files /dev/null and b/acc-web/acc-web/accweb differ diff --git a/acc-web/acc-web/accweb.exe b/acc-web/acc-web/accweb.exe new file mode 100755 index 0000000..4b27a01 Binary files /dev/null and b/acc-web/acc-web/accweb.exe differ diff --git a/acc-web/acc-web/config.yml b/acc-web/acc-web/config.yml new file mode 100644 index 0000000..9f51588 --- /dev/null +++ b/acc-web/acc-web/config.yml @@ -0,0 +1,55 @@ +# accweb server and application configuration. +# https://github.com/assetto-corsa-web/accweb + +webserver: + # Sets the host and port. + # Port 80 is the default port for web servers and might be blocked on your maschine. + # If that is the case you can use anything else like 8080 for example. + # 0.0.0.0 exposes accweb on the internet. + host: 0.0.0.0:80 + + # Set tls to true and provide paths to the key files in order to enable SSL. + # This is highly recommended as otherwise your passwords and all other traffic won't be encrypted! + # accweb will probably support automatic Letsencrypt certificates in the future. + tls: false + cert: path to ssl certificate + private_key: path to ssl private key + + # http write/read timeouts + # technical stuff you shouldn't mess around with + write_timeout: 5 + read_timeout: 5 + +auth: + # Set the admin, moderator and read only user password. + # accweb won't start without an admin password. + admin_password: admin-password + moderator_password: moderator-password + read_only_password: read-only-password + + # Optional path to public and private token key files. If you need to store the private/public keys used to + # sign the session token (the JWT) in a specific location (or have existing keys in a specific location), you + # can define those here. + # + # accweb now generate these with a default path if not configured. + # + # public_key_path: secrets/token.public + # private_key_path: secrets/token.private + +acc: + # Path to ACC server installation directory. + # Use forward slashes (even if you're on Windows!). The example path is for Linux. + server_path: "/home/username/.steam/steam/steamapps/common/Assetto Corsa Competizione/server" + + # Name of the server executable within the server installation directory. + # You don't need to change this (except the ACC devs change its name for some reason). + server_exe: accServer.exe + +# TECHNICAL STUFF FROM HERE ON + +config_path: config/ +dev: false +loglevel: info +cors: + origins: "*" + loglevel: info