Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 37 additions & 21 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,29 @@
# Dockerfile for liquid-feedback
#

FROM debian:buster-slim AS builder
FROM debian:bullseye-slim AS builder

#MAINTAINER Pascal Schneider <https://github.com/DarkGigaByte>

ENV LF_CORE_VERSION v3.2.2
ENV LF_FEND_VERSION v3.2.1
ENV LF_WMCP_VERSION v2.2.0
ENV LF_MOONBRIDGE_VERSION v1.1.1
ENV LF_CORE_VERSION v4.2.2
ENV LF_FEND_VERSION v4.0.0
ENV LF_WMCP_VERSION v2.2.1
ENV LF_MOONBRIDGE_VERSION v1.1.3
ENV LF_LATLON_VERSION v0.14

#
# install dependencies
#

RUN apt-get update && apt-get -y remove exim && apt-get -y install \
ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update && \
apt-get install -yqq --no-install-recommends \
build-essential \
lsb-release\
postgresql-server-dev-all\
postgresql\
msmtp-mta \
nullmailer \
libbsd-dev\
imagemagick \
libpq-dev \
Expand All @@ -30,10 +33,10 @@ RUN apt-get update && apt-get -y remove exim && apt-get -y install \
liblua5.3-0-dbg \
liblua5.3-dev \
mercurial \
python-pip \
python3-markdown2 \
pmake \
curl \
&& pip install markdown2
ca-certificates \
curl && rm -rf /var/lib/apt/lists/*

#
# prepare file tree
Expand All @@ -47,11 +50,24 @@ WORKDIR /opt/lf/sources

#
# Download sources
#
RUN hg clone -r ${LF_CORE_VERSION} https://www.public-software-group.org/mercurial/liquid_feedback_core/ ./core \
&& hg clone -r ${LF_FEND_VERSION} https://www.public-software-group.org/mercurial/liquid_feedback_frontend/ ./frontend \
&& hg clone -r ${LF_WMCP_VERSION} https://www.public-software-group.org/mercurial/webmcp ./webmcp\
&& hg clone -r ${LF_MOONBRIDGE_VERSION} https://www.public-software-group.org/mercurial/moonbridge ./moonbridge
#
RUN curl https://www.public-software-group.org/pub/projects/liquid_feedback/backend/${LF_CORE_VERSION}/liquid_feedback_core-${LF_CORE_VERSION}.tar.gz -o core.tar.gz \
&& curl https://www.public-software-group.org/pub/projects/liquid_feedback/frontend/${LF_FEND_VERSION}/liquid_feedback_frontend-${LF_FEND_VERSION}.tar.gz -o frontend.tar.gz \
&& curl https://www.public-software-group.org/pub/projects/webmcp/${LF_WMCP_VERSION}/webmcp-${LF_WMCP_VERSION}.tar.gz -o webmcp.tar.gz \
&& curl https://www.public-software-group.org/pub/projects/moonbridge/${LF_MOONBRIDGE_VERSION}/moonbridge-${LF_MOONBRIDGE_VERSION}.tar.gz -o moonbridge.tar.gz

#
# Extract sources
#
RUN mkdir ./core \
&& mkdir ./frontend \
&& mkdir ./webmcp \
&& mkdir ./moonbridge

RUN tar -zxf core.tar.gz -C ./core --strip 1 \
&& tar -zxf frontend.tar.gz -C ./frontend --strip 1 \
&& tar -zxf webmcp.tar.gz -C ./webmcp --strip 1 \
&& tar -zxf moonbridge.tar.gz -C ./moonbridge --strip 1

#
# Build moonbridge
Expand Down Expand Up @@ -82,18 +98,18 @@ RUN make \
WORKDIR /opt/lf/

RUN cd /opt/lf/sources/frontend \
&& hg archive -t files /opt/lf/frontend \
&& cd /opt/lf/frontend/fastpath \
&& mkdir /opt/lf/frontend \
&& cp -ar /opt/lf/sources/frontend/ /opt/lf/ \
&& cd /opt/lf/frontend/fastpath/ \
&& make \
&& chown www-data /opt/lf/frontend/tmp


FROM debian:buster-slim
FROM debian:bullseye-slim

RUN apt-get update && apt-get install --no-install-recommends -y\
msmtp-mta imagemagick python3-pip\
liblua5.3-0 postgresql-client\
&& pip3 install markdown2
nullmailer imagemagick python3-markdown2 sassc\
liblua5.3-0 postgresql-client

COPY --from=builder /opt/lf /opt/lf

Expand Down
17 changes: 16 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,16 @@ services:
- '8080:8080'
volumes:
- lf:/opt/lf/frontend/config
- ./nullmailer:/etc/nullmailer
- ./mailname:/etc/mailname
#image: 'darkgigabyte/liquid-feedback-docker:latest'
build: .
depends_on:
- db
env_file:
- lf.env
networks:
- stack

lf-cron:
restart: unless-stopped
Expand All @@ -20,16 +24,27 @@ services:
- db
env_file:
- lf.env
volumes:
- ./nullmailer:/etc/nullmailer
- ./mailname:/etc/mailname
entrypoint: ["/opt/lf/bin/lf_updated"]
networks:
- stack

db:
image: 'postgres:12-alpine'
image: 'postgres:14-alpine'
restart: unless-stopped
volumes:
- pg:/var/lib/postgresql/data
env_file:
- lf.env
networks:
- stack

volumes:
lf:
pg:

networks:
stack:
external: false
6 changes: 4 additions & 2 deletions lf.env.example
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#SMARTHOST_ADDRESS=YOUR_SMARTHOST_SMTP_SERVER:25
POSTGRES_HOST=db
POSTGRES_USER=liquid_feedback
POSTGRES_PASSWORD=liquid
POSTGRES_DB=liquid_feedback
POSTGRES_DB=liquid_feedback
NULLMAILER_USER=lq@toranm.me
NULLMAILER_NAME=LiquidFeedback Docker
NULLMAILER_FLAGS=f
Empty file added mailname
Empty file.
1 change: 1 addition & 0 deletions nullmailer/adminaddr
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
username@example.org
1 change: 1 addition & 0 deletions nullmailer/allmailfrom
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
username@example.org
1 change: 1 addition & 0 deletions nullmailer/defaultdomain
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
example.org
1 change: 1 addition & 0 deletions nullmailer/defaulthost
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
example.org
1 change: 1 addition & 0 deletions nullmailer/remotes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
example.org smtp --port=465 --auth-login --user=username --pass=password --ssl
67 changes: 58 additions & 9 deletions scripts/config_db.sql
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,72 @@
INSERT INTO system_setting (member_ttl) VALUES ('1 year');

INSERT INTO contingent (polling, time_frame, text_entry_limit, initiative_limit) VALUES (false, '1 hour', 20, 6);

INSERT INTO contingent (polling, time_frame, text_entry_limit, initiative_limit) VALUES (false, '1 day', 80, 12);

INSERT INTO contingent (polling, time_frame, text_entry_limit, initiative_limit) VALUES (true, '1 hour', 200, 60);

INSERT INTO contingent (polling, time_frame, text_entry_limit, initiative_limit) VALUES (true, '1 day', 800, 120);

-- query for version 4: INSERT INTO policy (index, name, min_admission_time, max_admission_time, discussion_time, verification_time, voting_time, issue_quorum_num, issue_quorum_den, issue_quorum, initiative_quorum_num, initiative_quorum_den, initiative_quorum) VALUES (1, 'Default policy', '4 days', '8 days', '15 days', '8 days', '15 days', 10, 100, 10, 10, 100, 10);

INSERT INTO policy (index, name, min_admission_time, max_admission_time, discussion_time, verification_time, voting_time, issue_quorum_num, issue_quorum_den, initiative_quorum_num, initiative_quorum_den) VALUES (1, 'Default policy', '4 days', '8 days', '15 days', '8 days', '15 days', 10, 100, 10, 100);
INSERT INTO "policy" (
"index",
"active",
"name",
"description",
"min_admission_time",
"max_admission_time",
"discussion_time",
"verification_time",
"voting_time",
"issue_quorum",
"issue_quorum_num",
"issue_quorum_den",
"initiative_quorum",
"initiative_quorum_num",
"initiative_quorum_den"
) VALUES (
1,
TRUE,
'Extensive proceeding',
DEFAULT,
'15 days',
'1 month',
'5 months',
'1 month',
'3 weeks',
1, 10, 100,
1, 10, 100
), (
2,
TRUE,
'Standard proceeding',
DEFAULT,
'15 days',
'1 month',
'1 month',
'1 week',
'1 week',
1, 10, 100,
1, 10, 100
), (
3,
TRUE,
'Fast proceeding',
DEFAULT,
'20 hours',
'48 hours',
'3 hours',
'1 hour',
'20 hours',
1, 1, 100,
1, 1, 100 );

INSERT INTO "privilege" ("unit_id", "member_id", "voting_right")
SELECT 1 AS "unit_id", "id" AS "member_id", TRUE AS "voting_right"
FROM "member";

INSERT INTO unit (name) VALUES ('Our organization');

INSERT INTO area (unit_id, name) VALUES (1, 'Default area');

INSERT INTO allowed_policy (area_id, policy_id, default_policy) VALUES (1, 1, TRUE);

-- Admin user with empty password
INSERT INTO member (login, name, admin, password, activated, last_activity)
VALUES ('admin', 'Administrator', TRUE, '$1$/EMPTY/$NEWt7XJg2efKwPm4vectc1', NOW(), NOW());
-- Admin user with invite sesam
INSERT INTO member (invite_code, admin) VALUES ('sesam', true);
2 changes: 2 additions & 0 deletions scripts/lf_updated
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

logger(){>&2 echo $@;}

service nullmailer start

LFUSER="lf"
DBHOST="${POSTGRES_HOST}"
DBNAME="${POSTGRES_DB}"
Expand Down
Loading