Skip to content

Commit 6bf0c8b

Browse files
authored
Merge pull request #7 from topcoder-platform/issues-1
Issues 1
2 parents 6d959bf + f60149c commit 6bf0c8b

File tree

4 files changed

+194
-3
lines changed

4 files changed

+194
-3
lines changed

Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@ RUN chmod -R 777 /vanillapp
1111

1212
# Clone the forum-plugins repository
1313
RUN git clone https://github.com/topcoder-platform/forums-plugins.git /tmp/forums-plugins
14-
RUN cp -r /tmp/forums-plugins/. /vanillapp/plugins/
14+
RUN cp /tmp/forums-plugins/config/vanilla.config-defaults.php /vanillapp/conf/config-defaults.php
15+
RUN cp -r /tmp/forums-plugins/. /vanillapp/plugins

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
- Docker (docker deployment)
66

77
## Docker Deployment
8-
- Set `MYSQL_DATABASE` and `MYSQL_ROOT_PASSWORD` in api.env.
9-
These variables are mandatory. `MYSQL_ROOT_PASSWORD` specifies the password that will be set for the MySQL root superuser account.
8+
- `MYSQL_DATABASE` and `MYSQL_ROOT_PASSWORD` might be changed. You need to use these values during Vanilla Forums
9+
installation.These variables are mandatory.
10+
`MYSQL_ROOT_PASSWORD` specifies the password that will be set for the MySQL root superuser account.
1011
- Run `docker-compose build` to build the image
1112
- Run `docker-compose up` to run Vanilla Forums
1213
- The Vanilla Forums will be available at `http://<your_docker_machine_ip>` by default

config/vanilla.config-defaults.php

Lines changed: 185 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,185 @@
1+
<?php if (!defined('APPLICATION')) exit();
2+
// DO NOT EDIT THIS FILE. If you want to override the settings in this file then edit config.php.
3+
// This is the global application configuration file that sets up default values for configuration settings.
4+
$Configuration = [];
5+
6+
// Auto-enable some addons.
7+
$Configuration['EnabledApplications']['Dashboard'] = 'dashboard';
8+
$Configuration['EnabledPlugins']['Topcoder'] = true;
9+
$Configuration['EnabledPlugins']['rich-editor'] = true;
10+
$Configuration['EnabledPlugins']['recaptcha'] = true;
11+
$Configuration['EnabledPlugins']['editor'] = true;
12+
$Configuration['EnabledPlugins']['emojiextender'] = true;
13+
$Configuration['EnabledPlugins']['GooglePrettify'] = true;
14+
$Configuration['EnabledPlugins']['Quotes'] = true;
15+
$Configuration['EnabledPlugins']['swagger-ui'] = true;
16+
17+
// ImageUpload
18+
$Configuration['ImageUpload']['Limits']['Enabled'] = false;
19+
$Configuration['ImageUpload']['Limits']['Width'] = '1000';
20+
$Configuration['ImageUpload']['Limits']['Height'] = '1400';
21+
22+
// Database defaults.
23+
$Configuration['Database']['Engine'] = 'MySQL';
24+
$Configuration['Database']['Host'] = 'dbhost';
25+
$Configuration['Database']['Name'] = 'dbname';
26+
$Configuration['Database']['User'] = 'dbuser';
27+
$Configuration['Database']['Password'] = '';
28+
$Configuration['Database']['CharacterEncoding'] = 'utf8mb4';
29+
$Configuration['Database']['DatabasePrefix'] = 'GDN_';
30+
$Configuration['Database']['ExtendedProperties']['Collate'] = 'utf8mb4_unicode_ci';
31+
$Configuration['Database']['ConnectionOptions'] = [
32+
12 => false, // PDO::ATTR_PERSISTENT
33+
1000 => true, // PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (missing in some PHP installations)
34+
];
35+
36+
// Use a dirty cache by default. Try Vanilla with memcached!
37+
$Configuration['Cache']['Enabled'] = true;
38+
$Configuration['Cache']['Method'] = 'dirtycache';
39+
$Configuration['Cache']['Filecache']['Store'] = PATH_CACHE.'/Filecache';
40+
41+
// Technical content stuff.
42+
$Configuration['Garden']['ContentType'] = 'text/html';
43+
$Configuration['Garden']['Locale'] = 'en';
44+
$Configuration['Garden']['LocaleCodeset'] = 'UTF8';
45+
46+
$Configuration['HotReload']['IP'] = '127.0.0.1';
47+
48+
$Configuration['ContentSecurityPolicy']['ScriptSrc']['AllowedDomains'] = [];
49+
50+
// Site specifics.
51+
$Configuration['Garden']['Installed'] = false; // Has Garden been installed yet? This blocks setup when true.
52+
$Configuration['Garden']['Title'] = 'Vanilla';
53+
$Configuration['Garden']['Domain'] = '';
54+
$Configuration['Garden']['WebRoot'] = false; // You can set this value if you are using htaccess to direct into the application, but the correct webroot isn't being recognized.
55+
$Configuration['Garden']['StripWebRoot'] = false;
56+
$Configuration['Garden']['AllowSSL'] = true;
57+
$Configuration['Garden']['PrivateCommunity'] = false;
58+
$Configuration['Garden']['Forms']['HoneypotName'] = 'hpt';
59+
60+
// Developer stuff.
61+
$Configuration['Garden']['Debug'] = false;
62+
$Configuration['Garden']['Errors']['LogFile'] = '';
63+
$Configuration['Garden']['FolderBlacklist'] = ['.', '..', '_svn', '.git']; // Folders we should never search for classes.
64+
65+
// User registration & authentication.
66+
$Configuration['Garden']['Session']['Length'] = '15 minutes';
67+
$Configuration['Garden']['Cookie']['Salt'] = ''; // We do this during setup, chill.
68+
$Configuration['Garden']['Cookie']['Name'] = 'Vanilla';
69+
$Configuration['Garden']['Cookie']['Path'] = '/';
70+
$Configuration['Garden']['Cookie']['Domain'] = '';
71+
$Configuration['Garden']['Cookie']['HashMethod'] = 'md5'; // md5 or sha1
72+
$Configuration['Garden']['Authenticator']['DefaultScheme'] = 'password'; // Types include 'Password', 'Handshake', 'Openid'
73+
$Configuration['Garden']['Authenticator']['RegisterUrl'] = '/entry/register?Target=%2$s';
74+
$Configuration['Garden']['Authenticator']['SignInUrl'] = '/entry/signin?Target=%2$s';
75+
$Configuration['Garden']['Authenticator']['SignOutUrl'] = '/entry/signout/{Session_TransientKey}?Target=%2$s';
76+
$Configuration['Garden']['Authenticator']['EnabledSchemes'] = ['password'];
77+
$Configuration['Garden']['Authenticator']['SyncScreen'] = "smart";
78+
$Configuration['Garden']['Authenticators']['password']['Name'] = "Password";
79+
$Configuration['Garden']['UserAccount']['AllowEdit'] = true; // Allow users to edit their account information? (SSO requires accounts be edited in external system).
80+
$Configuration['Garden']['Registration']['Method'] = 'Captcha'; // Options are: Basic, Captcha, Approval, Invitation
81+
$Configuration['Garden']['Registration']['InviteExpiration'] = '1 week'; // When invitations expire. This will be plugged into strtotime().
82+
$Configuration['Garden']['Registration']['InviteRoles'] = 'FALSE';
83+
$Configuration['Garden']['Registration']['ConfirmEmail'] = false;
84+
$Configuration['Garden']['Registration']['MinPasswordLength'] = 6;
85+
$Configuration['Garden']['Registration']['NameUnique'] = true;
86+
$Configuration['Garden']['TermsOfService'] = '/home/termsofservice'; // The url to the terms of service.
87+
$Configuration['Garden']['Password']['MinLength'] = 6;
88+
$Configuration['Garden']['Roles']['Manage'] = true; // @deprecated
89+
90+
// Garden security features
91+
$Configuration['Garden']['Security']['Hsts']['IncludeSubDomains'] = false;
92+
$Configuration['Garden']['Security']['Hsts']['Preload'] = false;
93+
$Configuration['Garden']['Security']['Hsts']['MaxAge'] = 604800;
94+
95+
// Outgoing email.
96+
$Configuration['Garden']['Email']['UseSmtp'] = false;
97+
$Configuration['Garden']['Email']['SmtpHost'] = '';
98+
$Configuration['Garden']['Email']['SmtpUser'] = '';
99+
$Configuration['Garden']['Email']['SmtpPassword'] = '';
100+
$Configuration['Garden']['Email']['SmtpPort'] = '25';
101+
$Configuration['Garden']['Email']['SmtpSecurity'] = ''; // ssl/tls
102+
$Configuration['Garden']['Email']['MimeType'] = 'text/plain';
103+
$Configuration['Garden']['Email']['SupportName'] = 'Support';
104+
$Configuration['Garden']['Email']['SupportAddress'] = '';
105+
106+
// Contact with the mothership.
107+
$Configuration['Garden']['UpdateCheckUrl'] = 'https://open.vanillaforums.com/addons/update';
108+
$Configuration['Garden']['AddonUrl'] = 'https://open.vanillaforums.com/addons';
109+
$Configuration['Garden']['VanillaUrl'] = 'https://open.vanillaforums.com';
110+
111+
// File handling.
112+
$Configuration['Garden']['CanProcessImages'] = false;
113+
$Configuration['Garden']['Upload']['MaxFileSize'] = '50M';
114+
$Configuration['Garden']['Upload']['AllowedFileExtensions'] = [
115+
'txt', 'jpg', 'jpeg', 'gif', 'png', 'bmp', 'tiff', 'ico', 'zip', 'gz', 'tar.gz', 'tgz', 'psd', 'ai', 'pdf', 'doc', 'xls', 'ppt', 'docx', 'xlsx', 'pptx', 'log', 'rar', '7z'
116+
];
117+
$Configuration['Garden']['Profile']['MaxHeight'] = 560;
118+
$Configuration['Garden']['Profile']['MaxWidth'] = 560;
119+
$Configuration['Garden']['Thumbnail']['Size'] = 200;
120+
121+
// Appearance.
122+
$Configuration['Garden']['Theme'] = 'keystone';
123+
$Configuration['Garden']['MobileTheme'] = 'mobile';
124+
$Configuration['Garden']['Menu']['Sort'] = ['Dashboard', 'Discussions', 'Questions', 'Activity', 'Applicants', 'Conversations', 'User'];
125+
$Configuration['Garden']['ThemeOptions']['Styles']['Key'] = 'Default';
126+
$Configuration['Garden']['ThemeOptions']['Styles']['Value'] = '%s_default';
127+
128+
// Profiles.
129+
$Configuration['Garden']['Profile']['Public']= true;
130+
$Configuration['Garden']['Profile']['ShowAbout'] = true;
131+
$Configuration['Garden']['Profile']['EditPhotos'] = true; // false to disable user photo editing
132+
$Configuration['Garden']['Profile']['EditUsernames'] = false;
133+
$Configuration['Garden']['BannedPhoto'] = 'https://images.v-cdn.net/banned_large.png';
134+
135+
// Embedding forum & comments.
136+
$Configuration['Garden']['Embed']['CommentsPerPage'] = 50;
137+
$Configuration['Garden']['Embed']['SortComments'] = 'desc';
138+
$Configuration['Garden']['Embed']['PageToForum'] = true;
139+
$Configuration['Garden']['SignIn']['Popup'] = true; // Should the sign-in link pop up or go to it's own page? (SSO requires going to it's own external page)
140+
141+
// User experience & formatting.
142+
$Configuration['Garden']['InputFormatter'] = 'Rich'; // Html, BBCode, Markdown, Text, Rich
143+
$Configuration['Garden']['MobileInputFormatter'] = 'Rich';
144+
$Configuration['Garden']['Html']['AllowedElements'] = "a, abbr, acronym, address, area, audio, b, bdi, bdo, big, blockquote, br, caption, center, cite, code, col, colgroup, dd, del, details, dfn, div, dl, dt, em, figure, figcaption, font, h1, h2, h3, h4, h5, h6, hgroup, hr, i, img, ins, kbd, li, map, mark, menu, meter, ol, p, pre, q, s, samp, small, span, strike, strong, sub, sup, summary, table, tbody, td, tfoot, th, thead, time, tr, tt, u, ul, var, video, wbr";
145+
$Configuration['Garden']['Search']['Mode'] = 'boolean'; // matchboolean, match, boolean, like
146+
$Configuration['Garden']['EditContentTimeout'] = 3600; // -1 means no timeout. 0 means immediate timeout. > 0 is in seconds. 60 * 60 = 3600 (aka 1hr)
147+
$Configuration['Garden']['Format']['Mentions'] = true;
148+
$Configuration['Garden']['Format']['Hashtags'] = false;
149+
$Configuration['Garden']['Format']['YouTube'] = true;
150+
$Configuration['Garden']['Format']['Vimeo'] = true;
151+
$Configuration['Garden']['Format']['EmbedSize'] = 'normal'; // tiny/small/normal/big/huge or WIDTHxHEIGHT
152+
153+
// Default preferences. Setting these to 'false' disables them globally.
154+
$Configuration['Preferences']['Email']['ConversationMessage'] = '1';
155+
$Configuration['Preferences']['Email']['BookmarkComment'] = '1';
156+
$Configuration['Preferences']['Email']['ParticipateComment'] = '0';
157+
$Configuration['Preferences']['Email']['WallComment'] = '0';
158+
$Configuration['Preferences']['Email']['ActivityComment'] = '0';
159+
$Configuration['Preferences']['Email']['DiscussionComment'] = '0';
160+
$Configuration['Preferences']['Email']['Mention'] = '0';
161+
$Configuration['Preferences']['Popup']['ConversationMessage'] = '1';
162+
$Configuration['Preferences']['Popup']['BookmarkComment'] = '1';
163+
$Configuration['Preferences']['Popup']['ParticipateComment'] = '0';
164+
$Configuration['Preferences']['Popup']['WallComment'] = '1';
165+
$Configuration['Preferences']['Popup']['ActivityComment'] = '1';
166+
$Configuration['Preferences']['Popup']['DiscussionComment'] = '1';
167+
$Configuration['Preferences']['Popup']['Mention'] = '1';
168+
169+
// Module visibility and sorting.
170+
$Configuration['Garden']['Modules']['ShowGuestModule'] = true;
171+
$Configuration['Garden']['Modules']['ShowSignedInModule'] = false;
172+
$Configuration['Garden']['Modules']['ShowRecentUserModule'] = false;
173+
$Configuration['Modules']['Dashboard']['Panel'] = ['MeModule', 'UserBoxModule', 'ActivityFilterModule', 'UserPhotoModule', 'ProfileFilterModule', 'SideMenuModule', 'UserInfoModule', 'GuestModule', 'Ads'];
174+
$Configuration['Modules']['Dashboard']['Content'] = ['MessageModule', 'MeModule', 'UserBoxModule', 'ProfileOptionsModule', 'Notices', 'ActivityFilterModule', 'ProfileFilterModule', 'Content', 'Ads'];
175+
$Configuration['Modules']['Vanilla']['Panel'] = ['MeModule', 'UserBoxModule', 'GuestModule', 'NewDiscussionModule', 'DiscussionFilterModule', 'SignedInModule', 'Ads'];
176+
$Configuration['Modules']['Vanilla']['Content'] = ['MessageModule', 'MeModule', 'UserBoxModule', 'NewDiscussionModule', 'ProfileOptionsModule', 'Notices', 'NewConversationModule', 'NewDiscussionModule', 'DiscussionFilterModule', 'CategoryModeratorsModule', 'Content', 'Ads'];
177+
$Configuration['Modules']['Conversations']['Panel'] = ['MeModule', 'UserBoxModule', 'NewConversationModule', 'SignedInModule', 'GuestModule', 'Ads'];
178+
$Configuration['Modules']['Conversations']['Content'] = ['MessageModule', 'MeModule', 'UserBoxModule', 'NewConversationModule', 'Notices', 'Content', 'Ads'];
179+
180+
// Routes.
181+
$Configuration['Routes']['DefaultController'] = 'discussions';
182+
$Configuration['Routes']['DefaultForumRoot'] = 'discussions';
183+
$Configuration['Routes']['Default404'] = ['dashboard/home/filenotfound', 'NotFound'];
184+
$Configuration['Routes']['DefaultPermission'] = ['dashboard/home/unauthorized', 'NotAuthorized'];
185+
$Configuration['Routes']['UpdateMode'] = 'dashboard/home/updatemode';

docs/SetupVanillaForums.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,9 @@ the Addons list.
3939
## Disabling Addons
4040
1. Disabling an addon will remove whatever features it added, but it never destroys the data associated with it.
4141

42+
# Know Issues
4243

44+
1. 'The specified data type (int unsigned) is not accepted for the MySQL database'.
45+
The error happens when User enters an invalid email and clicks on 'Continue'.
46+
Execute `docker-compose down` and `docker-compose up --build`. Then follow installation steps again.
4347

0 commit comments

Comments
 (0)