Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Q
quassel-webserver
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Janne Mareike Koschinski
quassel-webserver
Commits
112889d4
Commit
112889d4
authored
7 years ago
by
Janne Mareike Koschinski
Browse files
Options
Downloads
Patches
Plain Diff
Initial commit
parents
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
Dockerfile
+16
-0
16 additions, 0 deletions
Dockerfile
README.md
+151
-0
151 additions, 0 deletions
README.md
docker-entrypoint.sh
+4
-0
4 additions, 0 deletions
docker-entrypoint.sh
with
171 additions
and
0 deletions
Dockerfile
0 → 100644
+
16
−
0
View file @
112889d4
FROM
node:alpine
as
builder
RUN
apk add
--update
git python alpine-sdk
&&
\
git clone https://github.com/magne4000/quassel-webserver.git /quassel-webserver
&&
\
cd
/quassel-webserver
&&
\
git checkout tags/2.2.8
&&
\
npm
install
--production
FROM
node:alpine
RUN
apk
--no-cache
add ca-certificates
COPY
--from=builder /quassel-webserver /quassel-webserver
ADD
docker-entrypoint.sh /
EXPOSE
64080
ENTRYPOINT
["/docker-entrypoint.sh"]
This diff is collapsed.
Click to expand it.
README.md
0 → 100644
+
151
−
0
View file @
112889d4
Quassel-Webserver Docker Image
==============================
For configuration, you can mount a file at
`/quassel-webserver/settings.user.js`
, with this content
(plus whatever changes you wish to make):
```
js
module
.
exports
=
{
default
:
{
// Those can be overhidden in the browser
host
:
''
,
// quasselcore host
port
:
4242
,
// quasselcore port
initialBacklogLimit
:
20
,
// Amount of backlogs to fetch per buffer on connection
backlogLimit
:
100
,
// Amount of backlogs to fetch per buffer after first retrieval
securecore
:
true
,
// Connect to the core using SSL
theme
:
'
default
'
,
// Default UI theme
perchathistory
:
true
,
// Separate history per buffer
displayfullhostmask
:
false
,
// Display full hostmask instead of just nicks in messages
emptybufferonswitch
:
false
,
// Trim buffer when switching to another buffer. Can be `false` or a positive integer
highlightmode
:
2
// Highlight mode: 1: None, 2: Current nick, 3: All nicks from identity
},
webserver
:
{
socket
:
false
,
// Tells the webserver to listen for connections on a local socket. This should be a path. Can be overhidden by '--socket' argument
listen
:
null
,
// Address on which to listen for connection, defaults to listening on all available IPs. Can be overhidden by '--listen' argument
port
:
null
,
// Port on which to listen for connection, defaults to 64080 for http mode, 64443 for https. Can be overhidden by '--port' argument
mode
:
null
// can be 'http' or 'https', defaults to 'https'. Can be overhidden by '--mode' argument
},
themes
:
[
'
default
'
,
'
darksolarized
'
],
// Available themes
forcedefault
:
false
,
// Will force default host and port to be used if true, and will hide the corresponding fields in the UI.
prefixpath
:
''
// Configure this if you use a reverse proxy
};
```
To use this image with kubernetes, you should create the following resources. Make sure to use the
same (prefix-)path in the Ingress and the settings-user.js
```
yaml
kind
:
ConfigMap
apiVersion
:
v1
metadata
:
name
:
quassel-webserver
labels
:
app
:
quassel-webserver
data
:
settings-user.js
:
|-
module.exports = {
default: { // Those can be overhidden in the browser
host: '', // quasselcore host
port: 4242, // quasselcore port
initialBacklogLimit: 20, // Amount of backlogs to fetch per buffer on connection
backlogLimit: 100, // Amount of backlogs to fetch per buffer after first retrieval
securecore: true, // Connect to the core using SSL
theme: 'default', // Default UI theme
perchathistory: true, // Separate history per buffer
displayfullhostmask: false, // Display full hostmask instead of just nicks in messages
emptybufferonswitch: false, // Trim buffer when switching to another buffer. Can be `false` or a positive integer
highlightmode: 2 // Highlight mode: 1: None, 2: Current nick, 3: All nicks from identity
},
webserver: {
socket: false, // Tells the webserver to listen for connections on a local socket. This should be a path. Can be overhidden by '--socket' argument
listen: null, // Address on which to listen for connection, defaults to listening on all available IPs. Can be overhidden by '--listen' argument
port: null, // Port on which to listen for connection, defaults to 64080 for http mode, 64443 for https. Can be overhidden by '--port' argument
mode: null // can be 'http' or 'https', defaults to 'https'. Can be overhidden by '--mode' argument
},
themes: ['default', 'darksolarized'], // Available themes
forcedefault: false, // Will force default host and port to be used if true, and will hide the corresponding fields in the UI.
prefixpath: '' // Configure this if you use a reverse proxy
};
```
```
yaml
kind
:
Deployment
apiVersion
:
extensions/v1beta1
metadata
:
name
:
quassel-webserver
labels
:
app
:
quassel-webserver
spec
:
# Increase this if you need more replicas for scaling
replicas
:
1
selector
:
matchLabels
:
app
:
quassel-webserver
template
:
metadata
:
labels
:
app
:
quassel-webserver
spec
:
volumes
:
-
name
:
config
configMap
:
name
:
quassel-webserver
containers
:
-
name
:
quassel-webserver
image
:
k8r.eu/justjanne/quassel-webserver:2.2.8
ports
:
-
name
:
http
containerPort
:
80
protocol
:
TCP
volumeMounts
:
-
name
:
config
mountPath
:
/quassel-webserver/settings-user.js
subPath
:
settings-user.js
```
```
yaml
kind
:
Service
apiVersion
:
v1
metadata
:
name
:
quassel-webserver
labels
:
app
:
quassel-webserver
spec
:
selector
:
app
:
quassel-webserver
ports
:
-
name
:
http
protocol
:
TCP
port
:
80
targetPort
:
http
type
:
ClusterIP
```
```
yaml
kind
:
Ingress
apiVersion
:
extensions/v1beta1
metadata
:
name
:
quassel-webserver
labels
:
app
:
quassel-webserver
annotations
:
kubernetes.io/ingress.class
:
nginx
# Remove this if you don’t want Let’s Encrypt support
kubernetes.io/tls-acme
:
true
spec
:
rules
:
# Change the host to your own
-
host
:
quassel.example.com
http
:
paths
:
# Change the path to whatever you set in settings-user.js for prefixpath
-
path
:
/chat
backend
:
serviceName
:
quassel-webserver
servicePort
:
http
# Remove this part if you don’t want Let’s Encrypt support
tls
:
-
secretName
:
quassel-webserver-tls
hosts
:
# Change the host to your own
-
quassel.example.com
```
This diff is collapsed.
Click to expand it.
docker-entrypoint.sh
0 → 100755
+
4
−
0
View file @
112889d4
#!/bin/sh
export
NODE_ENV
=
production
cd
/quassel-webserver
node app.js
-m
http
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment