Skip to content

Commit a53d2dc

Browse files
committed
Configurable base url
1 parent 239ce6f commit a53d2dc

File tree

21 files changed

+69
-29
lines changed

21 files changed

+69
-29
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ Key | Description
4242
--- | ---
4343
game | Which game server to launch, see above
4444
path | Folder path to game server
45+
baseUrl | URL path used to serve the application, default is '/'. Must end with `/`
4546
port | Web port to use
4647
host | IP or Hostname to listen on
4748
type | Which kind of server to use, can be 'linux', 'windows' or 'wine'

app.js

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ var Settings = require('./lib/settings')
1717

1818
var app = express()
1919
var server = require('http').Server(app)
20-
var io = require('socket.io')(server)
2120

2221
setupBasicAuth(config, app)
2322

@@ -27,8 +26,6 @@ app.use(bodyParser.urlencoded({ extended: false }))
2726
morgan.token('user', function (req) { return req.auth ? req.auth.user : 'anon' })
2827
app.use(morgan(config.logFormat || 'dev'))
2928

30-
app.use(serveStatic(path.join(__dirname, 'public')))
31-
3229
var logs = new Logs(config)
3330

3431
var manager = new Manager(config, logs)
@@ -40,11 +37,22 @@ mods.updateMods()
4037

4138
var settings = new Settings(config)
4239

43-
app.use('/api/logs', require('./routes/logs')(logs))
44-
app.use('/api/missions', require('./routes/missions')(missions))
45-
app.use('/api/mods', require('./routes/mods')(mods))
46-
app.use('/api/servers', require('./routes/servers')(manager, mods))
47-
app.use('/api/settings', require('./routes/settings')(settings))
40+
var baseUrl = config.baseUrl || '/'
41+
var router = express.Router()
42+
43+
router.use('/api/logs', require('./routes/logs')(logs))
44+
router.use('/api/missions', require('./routes/missions')(missions))
45+
router.use('/api/mods', require('./routes/mods')(mods))
46+
router.use('/api/servers', require('./routes/servers')(manager, mods))
47+
router.use('/api/settings', require('./routes/settings')(settings))
48+
router.use('/', require('./routes/main')(baseUrl))
49+
router.use(serveStatic(path.join(__dirname, 'public')))
50+
51+
app.use(baseUrl, router)
52+
53+
var io = require('socket.io')(server, {
54+
path: baseUrl + 'socket.io'
55+
})
4856

4957
io.on('connection', function (socket) {
5058
socket.emit('missions', missions.missions)

config.js.example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
module.exports = {
22
game: 'arma3', // arma3, arma2oa, arma2, arma1, cwa, ofpresistance, ofp
33
path: 'path-to-arma3-directory',
4+
baseUrl: '/',
45
port: 3000,
56
host: '0.0.0.0', // Can be either an IP or a Hostname
67
type: 'linux', // Can be either linux, windows or wine

public/index.html

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
<!DOCTYPE html>
22
<html>
33
<head>
4+
<base href="/" />
45
<meta charset="utf-8">
56
<title>Arma Server Admin</title>
67
<meta name="viewport" content="width=device-width, initial-scale=1.0">
7-
<link rel="shortcut icon" href="/favicon.ico" />
8+
<link rel="shortcut icon" href="favicon.ico" />
89

910
<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
1011
<!--[if lt IE 9]>
1112
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
1213
<![endif]-->
1314

14-
<script src="/socket.io/socket.io.js"></script>
15+
<script src="socket.io/socket.io.js"></script>
1516
<script src="bundle.js"></script>
1617
</head>
1718
<body></body>

public/js/app/collections/logs.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@ var Log = require('app/models/log')
55
module.exports = Backbone.Collection.extend({
66
comparator: 'name',
77
model: Log,
8-
url: '/api/logs/'
8+
url: 'api/logs/'
99
})

public/js/app/collections/missions.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ module.exports = Backbone.Collection.extend({
77
return a.get('name').toLowerCase().localeCompare(b.get('name').toLowerCase())
88
},
99
model: Mission,
10-
url: '/api/missions/'
10+
url: 'api/missions/'
1111
})

public/js/app/collections/mods.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ module.exports = Backbone.Collection.extend({
77
return a.get('name').toLowerCase().localeCompare(b.get('name').toLowerCase())
88
},
99
model: Mod,
10-
url: '/api/mods/'
10+
url: 'api/mods/'
1111
})

public/js/app/collections/servers.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ module.exports = Backbone.Collection.extend({
77
return a.get('title').toLowerCase().localeCompare(b.get('title').toLowerCase())
88
},
99
model: Server,
10-
url: '/api/servers/'
10+
url: 'api/servers/'
1111
})

public/js/app/models/mission.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@ module.exports = Backbone.Model.extend({
55
name: ''
66
},
77
idAttribute: 'name',
8-
urlRoot: '/api/missions/'
8+
urlRoot: 'api/missions/'
99
})

public/js/app/models/mod.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@ module.exports = Backbone.Model.extend({
55
name: ''
66
},
77
idAttribute: 'name',
8-
urlRoot: '/api/mods/'
8+
urlRoot: 'api/mods/'
99
})

0 commit comments

Comments
 (0)